1. ホーム
  2. ジャバスクリプト

[解決済み】なぜJavaScriptは"; "で始まる必要があるのですか?

2022-04-08 05:03:41

質問

最近、ウェブ上の多くの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ファイルでも、この規約を見かけることがあります。

このようにすることのメリットとデメリットは何でしょうか?

どのように解決するのですか?

スクリプトを連結してminify/compress/sentすることが多いので、最後の人はこんな感じだったのではと思います。

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