JavaScript中容易出错的开关判断细�
Switch语句与if语句关系密切,也是其他编程语言常用的一种流量控制语句。但是switch的匹配是全等模式,如果不注意这个细节,写程序的时候经常会出错。
代码:
var n=' 5Switch(n){case 5:alert('执行case分支');打破;Default:alert('执行默认分支');}结果:
很多人可能会误以为以上程序会取案例分支,反而会取默认分支。他们两个不是平等的吗?让我们使用if语句来看看。
代码:
var n=' 5if(n==5){ alert(' true branch ');} else { alert(' false branch ');}结果:
if语句可以匹配,为什么switch语句不能匹配?
这是因为switch语句中的case使用了全等模式,这相当于在if中使用了三个等号。让我们重写案例代码
代码:
var n=' 5Switch(n){case '5': //将原来的case 5改写为case '5'alert('执行case分支');打破;Default:alert('执行默认分支');}结果:
在重写之后,你可以接受case分支,就像我们在if中使用三个完全相等一样
代码:
var n=' 5if(n===5){ alert(' true branch ');} else { alert(' false branch ');}结果:
因为使用同余,所以字符串5不等于数字5,从而导致假分支。
以上例子说明了在switch中使用了全等匹配模式,尤其是数字匹配字符串时需要注意的一个问题
版权声明:JavaScript中容易出错的开关判断细�是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。