0
A
回答
0
解析器将前者解释为function declaration,后者解释为function expression。
为什么?要理解我们需要查看ECMA-262第3版的第11.1.6和12.4节。第12.4节指出“ExpressionStatement不能以function关键字开头,因为这可能会使FunctionDeclaration模糊不清。”这告诉我们function f(){}()
必须是函数声明,并且()
是无效的语法。这个陈述是一个表达式的原因是因为第11.1.6节中的分组操作符(又名括号)强制该函数被视为表达式。
相关问题
- 1. 语句和函数之间的区别
- 2. 函数和语句之间的区别
- 3. 这些构造函数调用语句之间的区别?
- 4. 了解POSIX和Linux/glibc sched_ *函数之间的差异
- 5. VAR和Keep语句之间的差异
- 6. 之间的任何细微差别;或{}来表示空语句?
- 7. Time.zone.now之间的差异,当它自己调用和在一个where语句
- 8. 了解mvc:库类和模型类之间的差别
- 9. Return和Break之间的区别语句
- 10. 'wait'和'@'语句之间的区别
- 11. 方法和自由函数之间有什么细微差别?
- 12. 了解SQLAlchemy中的中间SQL语句
- 13. Dalvik Bridge函数和Dalvik Native函数调用之间的区别?
- 14. 了解Iterator接口和“foreach”语句之间的关系
- 15. 了解ToArray和JSON之间的区别
- 16. 了解.body和body之间的区别
- 17. 简单语句和复杂语句之间的区别 - Javascript
- 18. Javascript - 自调用和正常函数调用之间的区别是什么?
- 19. '或'语句函数调用
- 20. 了解两种Javascript语法之间的区别
- 21. 在WHERE语句中获得两个数字之间的差异?
- 22. 立即调用函数和jQuery立即调用函数之间的区别
- 23. 请解释函数($变量)和函数()之间的区别
- 24. x86_64 Linux函数和系统调用之间的ABI差异
- 25. 了解MCPL函数调用
- 26. if语句里面的调用函数
- 27. 试图了解git repos和vss数据库之间的差异
- 28. 方法调用之间的时间差
- 29. 函数返回中const T&和T之间的差别
- 30. C中的静态函数和非静态函数之间的差别
因为这是必需的语法,所以必须在函数周围添加括号以表明它是一个函数表达式。 – jonrsharpe