function xxx() {
console.log(i);
let i = 0;//暂时性死区
//告知当前AO拥有该变量
}
在函数调用函数的时候,如果输出一个变量,如果被调用的函数没有该变量,则会输出全局变量的值,如果全局也没有则报错;
let i = 1;
function xxx() {
console.log(i);//un
if (!i) {
var i = 100;
}
console.log(i);//100
}
由于if不是函数,因此var可以从局部作用域出来,变成xxx的局部变量;如果if改成函数则var则会一直为自己的局部变量,不会升级为xxx的局部变量