在JavaScript中,字符串的Switch-Case语句不能按预期工作。

7 浏览
0 Comments

在JavaScript中,字符串的Switch-Case语句不能按预期工作。

我遇到了关于字符串和switch-case的问题,我会尽量简单地解释一下。

这里event.keyCode的值是"65",是由按下 'a' 键(使用JQuery)的keydown事件产生的。

if (event.keyCode == "65") {
   alert("嗯嗯嗯");
}

这个代码可以正常工作,但是:

switch (event.keyCode) {
   case '65':
      alert("耶!");
      break;
}

却不行。然而,这个会工作:

switch ('65') {
   case '65':
      alert("耶!");
      break;
}

如果我这样写:

var t = '65';
switch (t) {
   case '65':
      alert("耶!");
      break;
}

它可以正常工作。然后我尝试了这个:

var t = event.keyCode;
switch (t) {
   case '65':
      alert("耶!");
      break;
}

但是它失败了!

那么为什么开始的if块可以匹配,但switch-case却不行呢?

0