var关键字声明变量,无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。
function aa() {
if(bool) {
var test = 'hello man';
} else {
console.log(test);
}
}
上述代码其实等价于下面的代码
function aa() {
var test;// 变量提升
if(bool) {
test = 'hello man' ;
} else {
//此处访问test 值为undefined
console.log(test) ;
}
//此处访问test 值为undefined
}