JavaScript 中的条件语句主要包括 if
、else if
、else
和 switch
。
if
语句if
语句用于根据一个条件判断是否执行某段代码。当 if(...)
语句括号里的条件表达式为 true
,则执行 if
后的 一行 语句。
如果希望控制多行代码,可以使用 {}
将语句括起来。建议每次使用 if
语句都用大括号 {}
来包装代码块,即使只有一条语句,这样可以提高代码可读性。
如果条件表达式为 false
则不执行。
如果 if
后的条件表达式不是布尔值,会先转换为布尔值然后再运算。数字 0
、空字符串 ""
、null
、undefined
和 NaN
都会被转换成 false
。其它值被转换为 true
。
示例:
let age = 18;
if (age >= 18) console.log('成年人');
if (age >= 18) {
console.log('成年人');
}
if-else
语句if-else
语句可根据不同条件执行不同的代码块,如果该表达式的值为 true
,则执行 if
后面的代码块;否则执行 else
后面的代码块。
示例:
let age = 25;
if (age >= 18) {
console.log('成年人');
} else {
console.log('未成年人');
}
else if
语句else if
语句是在 if-else
结构中使用的扩展,允许你添加多个条件进行判断。
else if
语句会自上而下依次对 if
后的条件表达式进行求值判断,直到出现 true
条件为止。当出现 true
条件时,后面的条件就不会再继续求值判断了,需要合理安设计条件的排列顺序或增加逻辑运算条件。
示例:
let score = 95;
if (score >= 90) {
console.log('优秀');
} else if (score >= 60) { //尝试把次条件排序到第一试试结果如何?
console.log('及格');
} else {
console.log('不及格');
}
switch
语句switch
语句可替代多个if
判断,根据表达式的值进行多分支选择。
switch
语句在执行时,会依次将 switch
后的表达式和 case
后的表达式进行 严格相等 比较
如果比较结果为 true
,switch
语句就执行相应 case
后的代码块,直到遇到最靠近的 break
语句(或者直到 switch
语句末尾)。
如果没有符合的 case
,则执行 default
代码块(如果 default
存在)。
示例:
let day = 7;
switch (day) {
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
break;
case 6: //case 分组
case 7: //共享同一段代码的几个 case 分支可以被分为一组
console.log('周末');
break;
default:
console.log('其他');
}
break
终止(结束、跳出)循环break
用于终止(结束、跳出)当前的循环或 switch
语句,如果没有 break
,则会继续执行后续 case
(即发生“穿透”现象)。
示例:
let day = 2;
switch (day) {
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
// 没有 break,会继续执行下一个 case
case 3:
console.log('星期三');
break;
default:
console.log('其他');
}