我遇到了JavaScript'hoisting',我没有弄清楚这段代码是如何起作用的:
var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a);
我知道像(function a() {})这样的函数声明将被提升到函数b作用域的顶部,但是它不应该覆盖a(因为函数声明覆盖变量声明而不是变量初始化)的值,所以我期望警报的值会是10而不是1 !!
回首忆惘然
跃然一笑
相关分类