[解決済み】なぜ、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
関数呼び出しの
お勧めのレクチャー
- 名前付き関数式の謎解き (素晴らしい記事)
-
JavaScriptのカプセル化された匿名関数の構文について説明します。
(詳しくは
FunctionDeclaration
対FunctionExpression
)
関連
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み] テスト
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで二重引用符と単一引用符はいつ使うべきですか?
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] CSSは常にJavascriptより優先されるべきか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Heroku:ノードアプリで「このアプリにはデフォルトの言語が検出されませんでした」エラーがスローされる
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】 \u003C とは何ですか?
-
[解決済み】react router v^4.0.0 Uncaught TypeError: 未定義のプロパティ'location'を読み取れない
-
[解決済み] カプセル化された匿名関数の構文について説明します。