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:

原文地址:https://www.cnblogs.com/cheeseCatMiao/p/10921645.html