switch条件开关语句
if 语句和 switch 语句选择
1、分支比较多且无法穷尽时最好用 if, 其它情况可以按照个人习惯
2、如果数据量不是很大, 并且数据是固定的可以用Switch
3、理论上Switch的效率比if高
switch case语句
switch(变量/表达式)
{
case 值1:
执行代码块 1
break;
case 值2:
执行代码块 2
break;
default:
与 case 1 和 case 2 不同时执行的代码
}
1、计算条件表达式的值。并逐个与case后面表达式的结果值比较
2、当条件表达式的值与某个条件表达式的值全等时,执行气候的语句,并且不会在与其它case进行比较。
3、如果条件表达式的值与所有case后的表达式均不相同时,则执行defaul后的语句。
示例代码
var num = 2;
switch(num) {
case 1:
console.log("壹");
break;
case 2:
console.log("贰"); // 输出贰
break;
case 3:
console.log("叁");
break;
default:
console.log("非法数字");
break;
}
Switch注意问题解读
一、JavaScript中case判断是否相等时是全等于(= = =),而不是等于(==),也就是说既会判断类型是否相等又会判断值是否相等
var str = "123";
switch(str) {
case 123:
console.log("123数字");
break;
case "123":
console.log("123字符串"); // 输出123字符串
break;
default:
console.log("default");
break;
}
二、case后面可以是常量也可以是变量
var num = 120;
switch(120) {
case num: // 这里可以是变量
console.log("120"); // 输出120
break;
case 110: // 这里可以是常量
console.log("110");
break;
default:
console.log("default");
break;
}
三、判断时会先计算表达式的值,再判断
switch(120 + 3) { // 计算后为123
case 120:
console.log("120");
break;
case 3:
console.log("3");
break;
case 3 + 120: // 计算后为123
console.log("3 + 120"); // 输出3 + 120
break;
default:
console.log("default");
break;
}
四、default可以省略 default语句可以写在switch语句中的任意位置
switch(3) {
case 1:
console.log("壹");
break;
default: // 无论写在哪, 都只会在所有case不匹配才执行
console.log("非法数字~~");
break;
case 2:
console.log("贰");
break;
}
五、可以利用switch的穿透力简化代码
switch(score/10) {
case 10: // 利用case的穿透简化代码
case 9:
alert("A");
break;
case 8:
alert("B");
break;
case 7:
alert("D");
break;
case 6:
alert("C");
break;
default:
alert("E");
break;
}