jshint在'case'之前抛出"预期的'break'语句"

sak*_*dar 55 javascript jshint

嗨,当我的框架使用jshint验证我的javascript代码时,我遇到了麻烦.我故意使用了switch-case而没有break语句,但这部分代码在jshint检查时被捕获为错误.我的代码如下所示.

    switch (<no>){
    case 1:
        // does something
    case 2:
        //does something more
    default:
        // does something even more
   }
Run Code Online (Sandbox Code Playgroud)

Error from 'jshint' is like Line 203 character 41: Expected a 'break' statement before 'case'. 有关如何避免它的任何想法?或者在这种情况下使用切换案例是不好的做法?

Ger*_*der 117

从文档中复制并粘贴:

切换语句

默认情况下,JSHint会在switch语句中省略break或return语句时发出警告:

[...]

如果您真的知道自己在做什么,可以通过添加/* falls through */注释告诉JSHint您打算通过案例块来解决问题

所以在你的情况下:

switch (<no>) {
  case 1:
    // does something
    /* falls through */
  case 2:
    //does something more
    /* falls through */
  default:
    // does something even more
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你给他的答案,而不是来回烧烤这家伙为什么他想这样做:) (25认同)
  • +1.通过设计,开关语句支持断裂,或没有休息,这取决于你所需要的行为.否则,语言为什么会要求你在所有加入"破发" (9认同)