1

lodash ライブラリの行で、最初の行に防御用のセミコロンがあるのはなぜですか?

;(function(window) {
    ...
}(this));

最近、Definitive JavaScript で、セミコロンを適切に使用しないユーザーから保護するために防御的なセミコロンが使用されていることを読みましたが、先行するコードがないため、要点がわかりません。これは、ライブラリが別のライブラリの最後に連結されている場合ですか?

4

2 に答える 2

6

JavaScript のコンプレッサー/ミニファイアーを使用していて、以前のプラグイン;の末尾に がない場合、問題が発生する可能性があります。ということで、念のため;追加。

また、複数の JavaScript ファイルを安全に追加して、単一のHTTPリクエストで提供することもできます。

于 2013-07-09T14:04:41.553 に答える
0

そのセミコロンは、前のステートメントの継続として解釈されないようにするためにも使用されます。

var x = 0 // Semicolon omitted here
;[x,x+1,x+2].forEach(console.log) // Defensive ; keeps this statement separate

詳細: https://stackoverflow.com/a/20854706/1048668

于 2014-09-24T04:20:58.630 に答える