【发布时间】:2015-02-27 02:10:39
【问题描述】:
作为学习 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 浏览器,如果有影响的话。
那么,我的问题是,为什么函数中被提升的局部变量返回未定义,而被提升的全局变量返回空白?
【问题讨论】:
-
看来确实存在另一个问题来回答我的问题。如果我知道我的问题的答案,我可能也能找到另一个问题。如果这个问题被关闭,我没有问题。
标签: javascript undefined hoisting