[JS] 变量作用域
var num = 10;
fun();
function fun() {`
console.log(num);`
var num = 20;`
}
>> undefined
因为在fun()
里,因为log()
调用了num
,就在这个函数的作用域里找 num
,然后把num
的声明提前,相当于是:
function fun() {
var num;
console.log(num);
num = 20;
}
另一个例子:
var a = 18;
fun();
function fun() {
var b = 9;
console.log(a);
console.log(b);
var a = 5;
}
>> undefined
>> 9