在js中存在这样一种机制,在程序正式执行之前,会将var声明的变量(并未赋初始值)和function声明的函数预读到当前作用域的顶部。
var a= "global scope";
function f(){
console.log(a); //undefined,并没有出现"global scope"
var a="local scope";
console.log(a);//local scope
}
由于var a被提前了,但并未赋初始值,所以输出了undefined
在js中存在这样一种机制,在程序正式执行之前,会将var声明的变量(并未赋初始值)和function声明的函数预读到当前作用域的顶部。
var a= "global scope";
function f(){
console.log(a); //undefined,并没有出现"global scope"
var a="local scope";
console.log(a);//local scope
}
由于var a被提前了,但并未赋初始值,所以输出了undefined