Switch 语句适用于退格 KeyCode,if 语句不适用?

Switch statement works with backspace KeyCode, if statement does not?

我一直认为 if 和 switch 语句基本上以相同的方式比较事物,但格式不同。然而,当我试图捕获退格键代码时,开关是唯一一个在比较中出现的。这是为什么?

https://jsfiddle.net/ogbw8g8u/3/

$(window).on('keydown', function (e) {
e.preventDefault();

  if( e.KeyCode == 8 ) {
    $('div').append('<p>if</p>');
  }

  switch (e.keyCode) {
    case 8: // Backspace
      $('div').append('<p>switch</p>');
      break;
  }

});

你的错误不是语句,而是大小写。您的 if 语句不应将 keyCode 中的 k 大写。应该是:

if (e.keyCode == 8) {
    ...
}