【发布时间】:2021-08-15 18:57:55
【问题描述】:
我正在阅读凯尔·辛普森 (Kyle Simpson) 的书:https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/scope%20%26%20closures/ch4.md#functions-first。
但我不完全理解这一行 “请注意 var foo 是重复的(因此被忽略)声明,即使它出现在 function foo()... 声明之前,因为 function声明在普通变量之前被提升。"
假设这是代码:
console.log(foo); // The output is: foo() { return 2; }
function foo() {
return 1;
}
function foo() {
return 2;
}
var foo = 3;
我想可视化在内存创建阶段之后 JS 引擎中的输出。会是这样吗?
function foo() {
return 2;
}
console.log(foo);
如果是,为什么var foo = 3; 被忽略了?在 sn-p 中,var 没有重复项。如果没有,谁能帮我想象一下在内存创建阶段之后 JS 引擎的输出是什么?
谢谢
【问题讨论】:
标签: javascript hoisting