请参阅this fiddle。对我来说,它只是一个自动执行的空函数:
function(){}()
谷歌浏览器16.0.912.4 dev-m返回错误:
Uncaught SyntaxError: Unexpected token (
为什么呢?这特别奇怪,因为添加无关括号将删除错误:
(function(){})()
答案 0 :(得分:8)
ExpressionStatement:
[lookahead∉{{,function}] Expression;
因为function () {}()
不是ES5.1中定义的语句
有效的程序必须是声明。
然而以下
!function () {}();
是一个有效的声明,因此使用()
,var ret = function () {}()