作为学习 JavaScript 的一部分,我尝试编写代码来展示我正在学习的概念;今天我正在学习提升变量。这是我写的代码:
console.log("A: My name is " + name);
function happy() {
console.log ("1: I am " + feeling);
var feeling = "happy";
console.log ("2: I am " + feeling);
}
happy();
var name = "Jim";
console.log("B: My name is " + name);
我期望得到以下结果:
A: My name is undefined
1: I am undefined
2: I am happy
B: My name is Jim
但是,在 WriteCodeOnline.com 和另一个沙箱中测试我的代码时,第一个 console.log 显示A: My name is
. 我正在使用 Chrome 浏览器,如果这有什么不同的话。
所以,我的问题是,为什么函数中提升的局部变量返回未定义,而提升的全局变量返回空白?