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

[解決済み】なぜ、javascriptのすべての関数の後にセミコロンを使用しなければならないのですか?

2022-03-31 07:19:20

質問

javascriptの関数の後にセミコロンを付ける人と付けない人がいるのを見たことがあります。どちらがベストプラクティスなのでしょうか?

function weLikeSemiColons(arg) {
   // bunch of code
};

または

function unnecessary(arg) {
  // bunch of code
}

解決方法は?

の後にセミコロン 関数宣言 必要ない .

の文法は FunctionDeclaration に記述されています。 仕様書 をこのようにします。

function Identifier ( FormalParameterListopt ) { FunctionBody }

文法的にはセミコロンは必要ないのですが、なぜなのでしょうか?

セミコロンは ステートメント を使用します。 FunctionDeclaration ステートメント .

FunctionDeclarations が評価される 以前 が実行に移されます。 吊り上げ 共通語 この動作を説明するために使用されます。

ECMAScript 仕様には関数文が記述されていないため、関数宣言と関数文という用語はしばしば間違って同じ意味で使用されます。しかし、Mozilla など、関数文を文法に含む実装もありますが、これも非標準です。

を使用する場合は、常にセミコロンを使用することをお勧めします。 FunctionExpressions . 例えば

var myFn = function () {
  //...
};

(function () {
  //...
})();

上記の例で、最初の関数の後のセミコロンを省略すると、全く望ましくない結果になります。

var myFn = function () {
  alert("Surprise!");
} // <-- No semicolon!

(function () {
  //...
})();

最初の関数はすぐに実行されます。なぜなら、2番目の関数を囲む括弧が Arguments 関数呼び出しの

お勧めのレクチャー