Abd*_*han 4 javascript switch-statement
elmid = "R125";
switch(true){
case elmid.match(/R125/):
idType = "reply";
break;
}
alert(idType); // Returns undefined
-------------------BUT----------------------
elmid = "R125";
if (elmid.match(/R125/)){idType = "reply";}
alert(idType); // Returns "reply"
使用swtich返回undefined但使用if返回预期值,是什么导致交换机失败?为什么会这样?我在这做错了什么?可以任何人解释为什么我得到不同的结果=).
注意:在这种情况下没有建议使用if语句我知道,我的问题简明扼要,因此在switch语句中不仅有1个案例.
Ano*_*on. 10
elmid.match(/R125/)
Run Code Online (Sandbox Code Playgroud)
这将返回实际的正则表达式匹配,而不是 true或false.
当您编写if语句并使用时==,可以执行一些基本类型转换,以使其按预期工作.Switch语句使用identity comparison(===),因此这不起作用.
如果你想这样做,请改用regex.test()(它返回一个布尔值).
case /R125/.test(elmid):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |