Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jshint抛出了一个“;预期为';中断';在'之前的声明;案例'&引用;_Javascript_Jshint - Fatal编程技术网

Javascript jshint抛出了一个“;预期为';中断';在'之前的声明;案例'&引用;

Javascript jshint抛出了一个“;预期为';中断';在'之前的声明;案例'&引用;,javascript,jshint,Javascript,Jshint,嗨,当我的框架使用jshint验证我的javascript代码时,我遇到了一个问题。我故意使用了switch case而没有break语句,但是当jshint检查时,这部分代码被捕获为错误。我的代码如下所示 switch (<no>){ case 1: // does something case 2: //does something more default: // does something ev

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

    switch (<no>){
    case 1:
        // does something
    case 2:
        //does something more
    default:
        // does something even more
   }
开关(){
案例1:
//做点什么
案例2:
//做更多的事
违约:
//做了更多的事情
}
来自“jshint”的错误类似于第203行字符41:在“case”之前应该有一个“break”语句。
有没有想过如何避免它?或者在这种情况下使用切换案例是一种糟糕的做法吗?

复制和粘贴:

开关语句

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

[……]

如果你真的知道你在做什么,你可以告诉JSHint你 通过添加
/*falls-through*/
注释,使案例块失效

因此,在你的情况下:

switch (<no>) {
  case 1:
    // does something
    /* falls through */
  case 2:
    //does something more
    /* falls through */
  default:
    // does something even more
}
开关(){
案例1:
//做点什么
/*失败*/
案例2:
//做更多的事
/*失败*/
违约:
//做了更多的事情
}

确切地说,
break
s可能是完全多余的,如本例所示

function mapX(x){
  switch (x){
    case 1:
      return A;
    case 2:
      return B;
    default:
      return C;
  }
}
在这种情况下,如果在
返回之后发生
中断
,则会抛出一个警告,即
无法访问的代码

试图调和jshint和JS标准是很棘手的,但正如前面所说的,解决方案是

function mapX(x){
  switch (x){
    case 1:
      return A;
      /* falls through */
    case 2:
      return B;
      /* falls through */
    default:
      return C;
  }
}

现实世界的情况是什么?为什么不需要
break
?当案例2出现时,我需要案例2&下面的所有内容都应该执行。所有情况都是如此。诸如此类的东西。我的逻辑工作正常,但验证失败。我经常有一些开关,在任何情况下我都不需要
break
,这并不少见。如果只是做一个fall-through,可能会重复,这应该没问题,但也许有更好的选择,发布真正的代码会有所帮助。查字典是一种常见的选择。谢谢你给了他答案,而没有反复问他为什么要这样做:)+1。根据设计,switch语句支持中断或不支持中断,具体取决于您需要的行为。否则,为什么语言会要求您添加“中断”