JavaScript のセミコロンは省略可能ですが、セミコロンを使用しないことに対する強いアドバイスがあります。
に縮小されvar a=1,b=7,sum=a+b(a+b);
、エラーが発生しますnumber is not a function
。他にもこんなケースもあります。
更新: このバグはミニフィケーションによるものではありませんが、次のバグは次のとおりです。
縮小化に起因するバグに対してコードが脆弱になります: 試してください:
var isTrue = true
function doSomething() { return 'yeah' }
function doSomethingElse() { return 'yes, dear' }
doSomething()
!isTrue && doSomethingElse()
次のように縮小します。
var isTrue=true;function doSomething(){return "yeah"}function doSomethingElse(){return "yes, dear"}doSomething()!isTrue&&doSomethingElse();
その結果:
SyntaxError: Unexpected token !
利便性の点で、コードの可読性と保守性が低下します。セミコロンの使用は、適切なプラクティスとして当然のこととして確立されており、訓練を受けた JavaScript 開発者は、規則を回避しようとするコードに困惑するでしょう。
もう 1 つのことは、自問する必要があるということです。セミコロンを省略して、実際に何のメリットがあるのでしょうか。
- クリーンコード? JavaScript を JavaScript のように見せたくない場合は、CoffeeScriptを試してください。しかし、上記のような落とし穴は「簡単な解決策: 行が括弧で始まる場合は、先頭にセミコロンを追加する」ことで解決できると信じている誤った考えもあります。このクリーンなコードはどのように機能し、コードを読む人にとってどのように役立つでしょうか?
結論: 縮小化では、私は間違いなくJSLintの規則を使用しようとします。縮小されていないコードでは発生せず、縮小されたコードで発生しているバグを修正しようと何時間も試みた後、最終的に JavaScript コードを lint する人を見てきました。この惨めさの中に身を投じないでください。セミコロンは一見醜いかもしれませんが、バグを寄せ付けません。