function(){}()的SyntaxError

时间:2011-10-22 16:20:36

标签: javascript google-chrome

请参阅this fiddle。对我来说,它只是一个自动执行的空函数:

function(){}()

谷歌浏览器16.0.912.4 dev-m返回错误:

Uncaught SyntaxError: Unexpected token (

为什么呢?这特别奇怪,因为添加无关括号将删除错误:

(function(){})()

1 个答案:

答案 0 :(得分:8)

  

ExpressionStatement:

     

[lookahead∉{{,function}] Expression;

因为function () {}()不是ES5.1中定义的语句

有效的程序必须是声明。

Expression Statement

然而以下

!function () {}();

是一个有效的声明,因此使用()var ret = function () {}()

也是如此