こんにちは私のフレームワークがjshintを使用してjavascript
コードを検証しているときに問題が発生しています。 breakステートメントなしでswitch-caseを意図的に使用しましたが、jshint
チェック時にコードのこの部分がエラーとしてキャプチャされます。私のコードは以下のようなものです。
switch (<no>){
case 1:
// does something
case 2:
//does something more
default:
// does something even more
}
Error from 'jshint' is like Line 203 character 41: Expected a 'break' statement before 'case'.
それを避ける方法についての考えは?それとも、このシナリオでスイッチケースを使用するのは悪い習慣ですか?
コピー&ペースト ドキュメントから :
Switchステートメント
デフォルトでは、switchステートメント内でbreakまたはreturnステートメントを省略すると、JSHintは警告を出します。
[...]
自分が何をしているのか本当にわかっている場合は、
/* falls through */
コメント
あなたの場合:
switch (<no>) {
case 1:
// does something
/* falls through */
case 2:
//does something more
/* falls through */
default:
// does something even more
}
正確には、break
sはこの例のようにまったく不要な場合があります
function mapX(x){
switch (x){
case 1:
return A;
case 2:
return B;
default:
return C;
}
}
この場合、break
の後にreturn
があれば、 JS Standard は警告、つまりUnreachable code
。
JshintとJS Standardを調整しようとするのは難しいですが、前述のように、解決策は
function mapX(x){
switch (x){
case 1:
return A;
/* falls through */
case 2:
return B;
/* falls through */
default:
return C;
}
}