2011-01-12 7 views
1

thisが原因で、Cでプログラミングされている中括弧内のすべてのケースステートメントをラップする習慣を手に入れましたが、JSLintがうまくいきません。その時点で検証が中止されます。JSLintと "ステートメントを見て、代わりにブロックを見た。"エラー

私の質問です:JSのこのような悪い練習ですか? JSは機能範囲を持っているので、スコープの問題について心配する必要はありません(私はそれがどうなるのか理解しています、ただこれに「一貫性がない」良い理由がほしいのですが)?

(私は、異なる言語が異なる実践のために呼び出すことを知っているが、私は私の正気を保護するために言語間でできるだけconsistenことしようとしています。)

答えて

4

良い質問。

http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf

https://developer.mozilla.org/en/JavaScript/Reference/Statements/switch

は、JavaScriptのcompierがそれに耐えますが、:それはスイッチ/ケースたstatmentsのための言語仕様に実際に反しているので

JSLintはこれについて不平を言う理由がありますJSLintは、より厳密で正確なJavaScriptのサブセットに準拠するようにします。

また、追加の補強は、あなたがウェブサイトで送信する必要がある余分な文字です。あなたがそれらを必要としない場合、なぜそれらを送信するのですか?

上記のリンクを参照すると、JavaScriptで同じ問題は発生しません。だから、次のように動作します:

var x = 0; 
switch(x){ 
    case 0: 
     var y = 1; 
     alert(y); 
} 

このJSFiddleでそれを参照してください:http://jsfiddle.net/LKWwB/

最後に、あなたの正気について、私はあなたがそれを持っている希薄なグリップを放棄します。私は数年前にやってくれてとても幸せです:-)

+0

ありがとうございました。答えが本当に「それが間違っているから」という単純なことであることを知ってよかったです。 – griotspeak

+0

これは「言語仕様に反している」という証拠はありません。あなたが提供したリンクのどこにそれが言いますか? – Gili

関連する問題