【发布时间】:2021-01-18 12:42:08
【问题描述】:
我是新手,我想确保我正确理解了 var 的提升。
var a = 2;
var x = function() {
console.log(a);
var a = 1;
};
x();
当调用“x”函数时,我得到的答案是“未定义”; 所以,引擎看到“x”的函数范围内有一个变量“a”,并将其赋值给“undefined”;
如果我们取出函数内部的变量“a”:
var a = 2;
var x = function() {
console.log(a);
}
x();
然后我们得到答案“2”,因为引擎会在函数“x”中查找变量“a”,因为它在这里没有找到它,所以它会在外部/父/全局范围内查找为变量“a”,并找到它。
我做对了吗?
【问题讨论】:
-
基本上没错。
标签: javascript var hoisting