Js 関数を呼び出す方法は次のとおりです。
(1) 名前付き関数は
(2) 匿名関数は参照によって呼び出されます
(3) 参照なしの匿名関数呼び出し 1
(4) 参照なしの匿名関数呼び出し 2
(5) 参照なしの匿名関数呼び出し 3
図 1.1 と図 1.2 は、これら 2 つの式の演算プロセスが異なることを示しています。図 1.1 では、強制演算子を使用して関数呼び出し演算を実行しますが、図 1.2 では、強制演算子を使用して "関数を直接「数量」で宣言し、関数自体への参照を返し、関数呼び出し操作「()」を通じて関数参照を操作します。上記の最後の匿名関数呼び出し void function(){}(); は、関数を呼び出し、戻り値を無視するために使用されます。演算子 void は、後続の関数式で演算を実行するために使用されます。 「void」と強制操作「()」を使用しない場合、コードは実行できます:
(1)function(){}() //呼び出しを強制するには ''()" を使用します
(2)function(){}() //「;」を使用してステートメントを実行します
スクリプト エンジンは function(){} が関数宣言であると認識するため、構文検出に失敗し、コードは次のように解析されます。
関数(){};();
function(){} はステートメントとして解釈されますが、「();」は別の行として解釈されるため、構文エラーが報告されます。なぜ「();」が原因であることがわかりますか。 ?これを次のコードに変更します:
関数(){}(1);
これはエンジンによって次のように解釈されます:
関数(){};
(1) //単一値式
これで文法チェックに合格しました...