怎么来
function(){ alert("test123");}()
生成SyntaxError: Unexpected token (
,而
!function(){ alert("test123");}()
提醒“test123”
答案 0 :(得分:3)
这是因为通过添加!
符号,您可以将声明转换为表达式并立即调用它。
通过将您的函数括在括号中,您将使第一个示例正常工作:
(function(){ alert("test123");})()
为了使其更清晰,您可以将第一个表达式视为:
if (false || !function(){ return false; }())
<小时/> 正如@zerkms注意到有Immediately-invoking functions的完整解释。