javascript中switch判断理解误区

最近开发中遇到一个坑,就是判断  input 中value带的值  “1”,“2”,“3”,“4”

走swich判断时,一直出错,老是走不进判断里面,明明给的值都是1 ,2, 3,4...........


经过十几分钟的苦逼排错,终于发现了症结所在


switch语句与if语句的关系最为密切,也是其它编程语言中普遍使用的一种流程控制语句,但switch的匹配是全等模式,如果不注意这个细节则写程序时往往会出错。

代码:

var n = '5';

switch(n){

case 5:

alert('执行case分支');

break;

default:

alert('执行default分支');

}

结果:

可能很多人会误以为以上程序会走case分支,结果却走了default分支。

这是因为在switch语句里的case使用全等模式,也就相当于if里的使用三个等号类似。我们把case的代码改写一下


代码:

var n = '5';

switch(n){

case '5': // 把原来的 case 5 改写成 case '5'

alert('执行case分支');

break;

default:

alert('执行default分支');

}

结果:

改写了以后就能走case分支了,就像我们if里使用三个全等号一样


由以上例子说明在switch中使用的是全等匹配模式,特别是数字与字符串匹配的时候需要注意的一个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值