switch case
本次随笔由一个例子引出~
例1:var num = 18;
switch(true) {
case num < 0: alert('less than 0');break;
case num >= 0 && num <= 10: alert('between 0 and 10');break;
case num > 10 && num <=20: alert('between 10 and 20');break;
default: alert('More than 20');
}
// 执行 alert('between 10 and 20')
----------------------------------------------------
例2: var num = 18;
switch(num) {
case num < 0: alert('less than 0');break;
case num >= 0 && num <= 10: alert('between 0 and 10');break;
case num > 10 && num <=20: alert('between 10 and 20');break;
default: alert('More than 20');
}
// 执行 alert('More than 20')
解析:
switch 语句中的每一种case的含义是:“如果表达式等于这个值(switch后面跟的表达式的值),则执行后面的语句”。而break关键字会导致代码执行流跳出switch语句。如果省略break关键字,就会导致执行完当前case后,继续执行下一个case。最后的default关键字则用在表达式不匹配前面任何一种情形的时候,执行机动代码(相当于else语句)。
使用tips:
1、可以在switch语句中使用任何数据类型(在很多其他语言中只能使用数值),无论是字符串还是对象都没有问题。
2、每个case的值不一定是常量,可以是变量,甚至是表达式。
3、注意switch比较的时候是通过值相等的方式,故例2输出的是default,因为各种case的值都是布尔值,而num是数值,不会相等。
4、switch语句在比较值时使用的是全等操作符,因此不会发生类型转换,例如字符串‘10’不等于数值10。
性能tips: