关于if省略{}时的一些问题

在if语句中有这样的情况当条件成立时执行语句只有一句的时候我们通常可以省略花括号

var a = 0;
if(a == 0)a++;

这样的情况显然是可以的但是有些情况我们需要特别注意(当if/else语句中嵌套if语句时,必须确保else语句匹配正确的if语句)例如

    var i = j = 1,
        k = 2;
    if(i==j)
        if(j==k)
            console.log("i 等于 k")
    else
        console.log("i 不等于 j")

结果

这个时候的else匹配不是我们想要的匹配外层的在javascript解析器中它被解析成

 if(i ==j){
        if(j==k){
            console.log("i 等于 k")
        }
        else{
            console.log("i 不等于 j")
        }
    }

然而我们想要的却是

if(i ==j){
        if(j==k){
            console.log("i 等于 k")
        }
    }
    else{
        console.log("i 不等于 j")
    }

所以平时写代码为了可读性更强,更易理解,更方便维护应当使用花括号

原文地址:https://www.cnblogs.com/willamq/p/9554024.html