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中使用的是全等匹配模式,特别是数字与字符串匹配的时候需要注意的一个问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章