即時に呼び出される関数に関する情報を探していたところ、偶然この表記を見つけました。
+function(){console.log("Something.")}()
+
関数の前の記号が何を意味するのか、何をするのかを誰か説明してもらえますか?
ベストアンサー1
パーサーに、 に続く部分を+
式として扱うように強制します。これは通常、すぐに呼び出される関数に使用されます。例:
+function() { console.log("Foo!"); }();
thereがない+
場合、パーサーが文 (式または複数の非式文) を期待している状態にある場合、単語は関数式ではなく関数宣言function
の始まりのように見えるため、それに続くもの (上記の行の末尾のもの) は構文エラーになります (この例では、名前がない場合も同様です)。を使用すると、関数式になり、名前はオプションであり、結果として関数への参照が生成され、呼び出すことができるため、括弧は有効になります。()
+
+
はオプションの 1 つにすぎません。-
、!
、~
、または他の単項演算子も使用できます。代わりに、括弧を使用することもできます (これはより一般的ですが、構文的にはそれほど正確ではありません)。
(function() { console.log("Foo!"); })();
// or
(function() { console.log("Foo!"); }());