【发布时间】:2013-02-25 00:15:14
【问题描述】:
我遇到了 JavaScript 'hoisting',但我没有弄清楚这段 sn-p 代码的真正作用:
var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a);
我知道像 (function a() {}) 这样的函数声明将被提升到函数 b 范围的顶部,但它不应该覆盖 a 的值(因为函数声明会覆盖变量声明而不是变量初始化)所以我希望警报的值是 10 而不是 1!!
【问题讨论】:
-
提升是 JavaScript 将声明移到顶部的默认行为。 (函数声明从它们出现在代码流中的位置“移动”到代码的顶部。这产生了“提升”的名称。) Read more
-
这里有一个链接,简单解释了“函数表达式与函数声明和提升”...gomakethings.com/function-expressions-vs-function-declarations
标签: javascript hoisting