質問

また、最近は、このJavaScriptファイルをウェブ始 ; 直後にコメントです。

例えば、 このjQueryプラグインの コードの始まり:

/**
 * jQuery.ScrollTo
 * Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 9/11/2008                                      
 .... skipping several lines for brevity...
 *
 * @desc Scroll on both axes, to different values
 * @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
 */
;(function( $ ){

なぜ、ファイルが必要になり、 ;?私はこの条約にサーバサイドJavaScriptファイルです。

か、そのメリット-デメリットが?

役に立ちましたか?

解決

:スクリプトは、多くの場合、圧縮/連結と縮小されているので、

私は言うだろう/最後の男のようなものを持っていた可能性があります一緒に送られました

return {
   'var':'value'
}
最後に;せず、最後のスクリプトの末尾に

。あなたはあなたの開始時に;を持っている場合、それは安全で、例です。

return {
   'var':'value'
}
;(function( $ ){ //Safe (still, screw you, last guy!)
<時間>
return {
   'var':'value'
}
(function( $ ){ //Oh crap, closure open, kaboom!
<時間>
return {
   'var':'value'
};
;(function( $ ){ //Extra ;, still safe, no harm

他のヒント

私は別のファイルが閉じられているから、これは任意の前のステートメントを確実にすること(私はない確信していますが、そう私に急襲しないでください)信じています。最悪の場合、これは空の文になりますが、最良の場合には、それは未完成の文が実際に上から来たときに、このファイルでエラーを追跡しようとして避けることができます。

次のような例を考えてみましょう:

function a() {
  /* this is my function a */
}
a()
(function() {
  /* This is my closure */
})()

うするということが評価されるようになります:

function a() {
  /* this is my function a */
}
a()(function() {})()

もう a が使として取り扱わせて機能してみましたが初期化されます。

これは主に、ミスの防止しようとした場合にconcat掛けるファイルのファイル:

a.js

function a() {
  /* this is my function a */
}
a()

b.js

(function() {
  /* This is my closure */
})()

まconcatこれらのファイルを一緒に影響を与えてしまうことにもなります。

しょお ; 目の前に ( ももされています。ちなみ. var a = 1;;;var b = 2;;;;;;;;;var c = a+b; 完全に有効でJavaScript

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top