if (expression)
statement1
else
statement2
例如以下代码
复制代码 代码如下:
if (n == 1)
console.log("1 new message");
else
console.log("you have" + n + "new message");
当if/else语句中,嵌套使用if语句时,必须注意确保else语句匹配正确的if语句。考虑如下代码:
复制代码 代码如下:
i = j = 1;
k = 2;
if (i == j)
if (j == k)
console.log("i equs k");
else
console.log("i dosent equal j"); //错误!!
这个实例中,内层的if语句构成了外层if语句所需要的子句。但是,if和else的匹配关系不清晰(只有缩进给了一点暗示)而且在这个例子里,缩进给出的暗示是错误的,因为javascript解释器是这么理解的。
复制代码 代码如下:
if (i == j) {
if (j == k)
console.log("i equs k");
else
console.log("i dosent equal j");
}
和大多编程语言一样,javascript中的if、else匹配规则是,else总是和就近的if语句匹配,为了让个例子的可读性更强,更容易理解,更方便维护和调试,应当使用花括号
复制代码 代码如下:
if (i == j) {
if (j == k) {
console.log("i equs k");
} else { //花括号使代码的结果更清晰
console.log("i dosent equal j");
}
}
许多程序员都将有if和else语句主体用花括号括起来的习惯(就像类似while循环这样的符合语句中一样),即使每条分支只有一条语句,但这样做能避免刚才的程序歧义问题。
ii.else if
if/else语句通过判断一个表达式的计算结果来选择两条分支中的一条。当代码中有许多条分支的时候应该怎么办呢?一种解决的办法是使用else if语句。else if并不是真正的javascript语句,它只不过是多条if / else语句连接在一起的写法。
复制代码 代码如下:
if (n == 1) {
//执行代码块 1
} else if (n == 2) {
//执行代码块2
} else if (n == 3) {
//执行代码块3
} else {
//之前的条件都为false,则执行代码块4
}