私はIIFE関数で遊んでいて、これをタイプミスしました。以下をコンソールに貼り付けて、Enterキーを押します。
function A() {}("hello",6)
コンソールでは、を出力し6
ます。何故ですか?
tl; dr:関数は実行されないため、何も返しません。
JavaScriptインタープリターは、これを2つのステートメントとして解析します。
関数の宣言
function A() {}
式ステートメントが続く
("hello",6)
式ステートメントは、右のオペランドの結果である。を返すコンマ演算子を含むグループ化演算子で構成されます。6
コメントで述べたように、これをIIFEとして解釈したい場合は、関数定義(または行全体)を括弧で囲みます。
(function A() {})("hello",6)
// or
(function A() {}("hello",6))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加