var a = 10;
function foo() {
console.log(a); // ??
var a = 20;
}
foo();
答案: undefind
虽然声明了全局变量a,但是在fo()函数中,也声明了局部变量a,会被提升到函数顶部,运行函数时,a = undefind;
只有var声明的变量会有变量提升,const、let则没有变量提升。
var a = 10;
function foo() {
console.log(a); // ??
var a = 20;
}
foo();
答案: undefind
虽然声明了全局变量a,但是在fo()函数中,也声明了局部变量a,会被提升到函数顶部,运行函数时,a = undefind;
只有var声明的变量会有变量提升,const、let则没有变量提升。