在许多与JavaScript相关的博客上,我读到了有关脚本/函数的“创建和执行阶段”,但是我在规范中找不到任何相关内容。它是在官方规范的某个地方描述但名称有所不同还是仅仅是从某些书籍和其他资源中复制而来的概念?
示例来源:
https://developer.mozilla.org/en-US/docs/Glossary/Hoisting
Are functions set before variables in the javascript 'creation phase'?
答案 0 :(得分:2)
规范中没有“阶段”,因此没有这样的称呼,但概念仍然存在。您可以在用户定义函数的runtime semantics for EvaluateBody中找到它:
- 执行? FunctionDeclarationInstantiation( functionObject , argumentsList )。
- 返回评估
FunctionStatementList
的结果。
首先,声明所有变量(创建作用域及其绑定),然后执行代码。每当在规范中的任何地方创建新的(块)作用域时,都可以找到类似的措辞。