switch语句的妙用
switch语句的普通用法很简单,如下:
var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console.log(a); break; default: break; }
这里a和case列表中从上而下逐一做比较,如果匹配就执行case中的代码,若有break则跳出,无break则继续往下匹配,直到新的匹配和break或switch代码块结束。 注意: a和case值的匹配算法是执行严格相等比较的(‘===’),通常a和case的值都是简单值。
case的值除了简单值之外,还可以是各种表达式,switch (a){...}
中的a会和case中的表达式的结果值进行比较(“===”),由此,我们可以这样:
var a = [4], b = '3'; function foo(a, b) { return Math.abs(a - b) < 2; } switch (true) { case !(a && b): //过滤掉a,b其中有为‘假值’的情况 console.log('a:'+a,' b:'+b); break; case foo(a,b): //当a,b的差值在2以内,foo函数返回true console.log('a - b < '+Math.abs(a-b)); case a == b: console.log(a+'=='+b); break; case a < b: console.log(a+'<'+b); break; case a > b: console.log(a+'>'+b); break; default: break; }
以上例子中,true和每个case的表达式的值进行严格相等比较,当且仅当case表达式的值为布尔值true时才匹配,任何其他真值都不匹配。 注意:case !(a && b):
必须把&&、||运算符的结果进行显示转换为布尔值,才能匹配(因为&&、||的表达式的返回值不是布尔类型,它返回的是表达式中第一个为true、或第一个为false的那个值)
所以,只要你想得到的,只要符合规则,都能用switch实现!就是不知道这样写的代码好不好了!
相关推荐
cakecc00 2020-10-09
yawei 2020-10-09
zhaowj00 2020-07-26
PM实验室 2020-06-16
fly00love 2020-05-16
暗夜之城 2020-04-07
cmsmdn 2020-02-16
FCLAMP 2020-02-14
sunnyxuebuhui 2020-02-12
yogoma 2020-01-13
fengjing81 2020-01-10
singer 2019-12-20
坚持是一种品质 2019-12-07
ericasadun 2019-08-16
KilluaZoldyck 2019-10-23
pbyanglove 2010-06-22
苗疆三刀的随手记 2019-07-01
wolaoreme 2016-09-09
shenjianxz 2016-02-13