最近开发中遇到一个坑,就是判断 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中使用的是全等匹配模式,特别是数字与字符串匹配的时候需要注意的一个问题 |
javascript中switch判断理解误区
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.