在js中,一个变量名进入作用域的方式有4种:
Language-defined:所有的作用域默认都会给出this和arguments两个变量名;
Formal parameters(形参):函数有形参,形参会添加到函数的作用域中;
Function declarations(函数声明):如function foo() {};
Variable declarations(变量声明):如var foo。
var x = 1;
console.log(x); // 1
if (true) {
var x = 2;
console.log(x); // 2
}
console.log(x); // 2