条件语句 if语句 + if...else+switch语句+三元运算符
if 结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是 JavaScript 的两个特殊值,true表 示真,false表示伪。
if语句语法规范
1 2 3 | if (布尔值){ 语句 ; } |
需要注意的是,“布尔值”往往由一个条件表达式产生的,必须放在 圆括号中
1 2 3 4 5 | var m = 3; if (m === 3) { m++; } console.log(m); // 4 |
注意, if后面的表达式之中,不要混淆赋值表达式( =)、严格相等 运算符( ===)和相等运算符( ==)。尤其是赋值表达式不具有比 较作用。
1 2 3 4 5 | var x = 1; var y = 2; if (x = y) { console.log(x); } |
条件语句之 if...else
if...else基本结构
if代码块后面,还可以跟一个else代码块,表示不满足条件时,所要 执行的代码。
1 2 3 4 5 | if (m === 3) { // 满足条件时,执行的语句 } else { // 不满足条件时,执行的语句 } |
多个if...else连接
对同一个变量进行多次判断时,多个if...else语句可以连写在一起。
1 2 3 4 5 6 7 8 9 | if (m === 0) { // ... } else if (m === 1) { // ... } else if (m === 2) { // ... } else { // ... } |
if...else嵌套
var eat = true;
var food = "猪肉炖粉条";
if (eat) {if (food == "双椒鱼头") {console.log('双椒鱼头 ');}else{console.log("猪肉炖粉条"); }
} else {console.log('不吃了 ');
}
else代码块总是与离自己最近的那个if语句配对。
条件语句之 switch
多个if...else连在一起使用的时候,可以转为使用更方便的switch结 构
1 2 3 4 5 6 7 8 9 10 | switch (fruit) { case "banana": // ... break; case "apple": // ... break; default: // ... } |
需要注意的是,每个case代码块内部的break语句不能少,否则会 接下去执行下一个case代码块,而不是跳出switch结构。
1 2 3 4 5 6 7 8 9 10 11 12 13 | var x = 1; switch (x) { case 1: console.log('x 等于1'); case 2: console.log('x 等于2'); default: console.log('x 等于其他值 '); } // x等于1 // x等于2 // x等于其他值 |
三元运算符
JavaScript还有一个三元运算符(即该运算符需要三个运算子) ?: , 也可以用于逻辑判断。
1 | (条件) ? 表达式1 : 表达式2 |
这个三元运算符可以被视为if...else...的简写形式,因此可以用于多 种场合。
判断一个整数是奇数与偶数
if...else语句
1 2 3 4 5 6 | var n = 100; if (n % 2 === 0) { console.log("偶数"); } else { console.log("奇数"); } |
三元运算符
1 var n = 100;n % 2 === 0 ? '偶数 ' : '奇数 ' |