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