【发布时间】:2013-08-26 14:45:45
【问题描述】:
我在与JavaScript 开发人员进行一些随意讨论时遇到了提升这个话题,我被告知提升不是错误、错误或编写不佳的功能,而是开发人员的强大工具.
谁能解释一下JavaScript 变量和函数的提升如何成为JavaScript 中的一个强大概念,或者它在编写代码时有何帮助? (或)它只是一个无意中被开发人员意外发现的概念吗?
【问题讨论】:
-
它肯定不是“刚刚发现的”,它在 ECMA 规范中有很好的记录。假设您完全了解作用域和变量/函数声明提升的工作原理,这里有一个实用的应用程序:andrewkelley.me/post/js-callback-organization.html
-
这个问题是否可以更好地表述为“是否存在提升行为有益的情况?”正如@FabrícioMatté 指出的那样,并不是有人“意外”实施了提升行为。从语言实现的角度来看,省略它会更简单。
-
@apsillers 感谢您的建议。
-
这个可能被关闭为主要基于意见,因为讨论语言的各个方面通常倾向于遵循基于意见的路径(意识到在试图想象一个可能的答案时) ,但即使那样我也不会简历,这听起来像是一个有趣的问题。好吧,我的atm时间没了,稍后再回来查看。
-
如果您有兴趣,在第 5 步(函数)和第 8 步(变量)中,EMCAScript 5 in section 10.5 指定了提升行为。
标签: javascript performance hoisting