どうして
function(){ alert("test123");}()
生産するSyntaxError: Unexpected token (
その間
!function(){ alert("test123");}()
アラート「test123」
?
どうして
function(){ alert("test123");}()
生産するSyntaxError: Unexpected token (
その間
!function(){ alert("test123");}()
アラート「test123」
?
これは、!
符号を追加することで、宣言を式に変換し、すぐに呼び出すためです。関数を括弧で囲むと、最初の例がエラーなしで機能するようになります。
(function(){ alert("test123");})()
より明確にするために、最初の式を次のように考えることができます。
if (false || !function(){ return false; }())