2015-12-14 24 views

回答

0

解析器將前者解釋爲function declaration,後者解釋爲function expression

爲什麼?要理解我們需要查看ECMA-262第3版的第11.1.6和12.4節。第12.4節指出「ExpressionStatement不能以function關鍵字開頭,因爲這可能會使FunctionDeclaration模糊不清。」這告訴我們function f(){}()必須是函數聲明,並且()是無效的語法。這個陳述是一個表達式的原因是因爲第11.1.6節中的分組操作符(又名括號)強制該函數被視爲表達式。

相關問題