switch借鉴自其他语言,但也有自己的特色。
1、可以在switch语句中使用任何数据类型(数值、字符串、对象等),很多其他语言中只能使用数值。
2、每个case的值不一定是常量,可以是变量或者表达式。
例1:
1 switch ("hello world") { 2 case "hello" + "world" : 3 alert("Greeting was found."); 4 break; 5 case "goodbye" : 6 alert("Closing was found."); 7 break; 8 default: 9 alert("Unexpected message was found."); 10 11 }
运行结果:Greeting was found.
例2:
1 var num = 25; 2 switch (true) { 3 case num < 0: 4 alert("Less than 0."); 5 break; 6 case num >= 0 && num <= 10: 7 alert("Between 0 and 10."); 8 break; 9 case num >= 10 && num <= 20: 10 alert("Between 10 and 20.") 11 break; 12 default: 13 alert("More than 20.") 14 }
注:给case赋值true是因为每个case都会返回一个布尔值,这样每个case按照顺序被求值,直到找到匹配的值或者遇到default语句为止。
switch语句在比较值时使用的是全等操作符,不会发生类型转换(如字符串 ”10“ 不等于数值10)!