a = 10;
function abc() {
console.log(" a is " + a);
var a =5;
console.log("after a is " + a);
}
abc();
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我的第一个console.log显示a为undefined,而第二个console.log显示a为5 的结果.
我仍然试图理解为什么我的第一个控制台显示a为未定义.我已经将变量定义a为全局变量.
function abc() {
console.log(" a is " + a);
var a =5;
console.log("after a is " + a);
}
Run Code Online (Sandbox Code Playgroud)
这是因为吊装而变成的
function abc() {
var a;
console.log(" a is " + a); // undefined
a =5;
console.log("after a is " + a); // 5
}
Run Code Online (Sandbox Code Playgroud)
javascript具有词法范围,因此该函数a在查看外部之前会自行查找,因为它找到了a = 5,它将提升它的声明.