条件语句
条件语句指的是通过判断指定表达式的值来决定执行还是跳过某些语句。
if
if
语句是一种基本的控制语句,它让 JavaScript 可以选择执行路径,换句话说,就是有条件地执行语句,在这种情况下需要执行条件表达式的值,如果是真值则执行,否则不执行:
if (!username)
username = '学院君';
if
语句的第二种形式引入了 else
从句,当表达式的值是 false
时执行 else
中的逻辑:
if (!username)
username = '学院君';
else
username = '还是学院君';
多层嵌套时需要注意 JavaScript 中 if
、else
的匹配规则是就近匹配:else
总是和就近的 if
语句匹配,为了增强代码可读性,可维护性,需要适当使用花括号:
if (i == j) {
if (j == k) {
console.log('i equals k');
}
} else {
console.log("i doesn't equal j");
}
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 {
// 之前条件都不满足则执行这里的代码块
}
switch
前面提到有多个条件表达式需要判断时可以使用 else if
,但这个并不是最好的解决方案,一般这种情况下使用 switch
语句更合适:
switch(n) {
case 1:
// 执行代码块1
break;
case 2:
// 执行代码块2
break;
case 3:
// 执行代码块3
break;
default:
// 上述条件都不满足,执行代码块4
break;
}
需要注意的是上面的代码中,每一个 case
语句结尾处都使用了关键词 break
。break
语句的作用是使解释器跳出 switch
语句或循环语句,如果没有 break
语句,那么 switch
语句就会从与表达式匹配的地方开始,依次执行后续语句,一直到下一个 break
语句或 switch
语句结尾,这是初学者比较容易犯的错。如果是在函数中使用 switch
,还可以用 return
来替代 break
:
function convert(x) {
switch(typeof(x)) {
case 'number':
return x.toString(16);
case 'string':
return '"' + x + '"';
default:
return String(x);
}
}
注:每个
case
的匹配操作使用的是===
恒等运算符做比较,而不是==
相等运算符,因此,表达式和case
的匹配并不会做任何类型转换。
No Comments