全局变量的梗
例1:
对于var 的理解:将该变量声明在当前的作用域中,或者说执行上下文中。
function add() {
result = 3; //result变量即是隐喻全局变量
}
add();
console.log(result); // 3
即result在全局的变量;
function add() {
var result = 3; //result变量即是隐喻全局变量
}
add();
console.log(result); // error报错
因为var将result变量声明在了add函数里,函数会形成自己的作用域,因此result此时则是一个局部变量。
例2:
var的连等赋值:
function dome() {
var a = b = 0;
}
demo();
console.log(b); // 0;
console.log(a); // error报错
连等赋值的顺序是自右向左赋值,第一步,b = 0,可是b并没有显式声明,因此属于隐含的全局变量,所以在函数外部输出b相当于输出window.b;
而a的赋值则是类似于var a = (b = 0);从b变量进行值赋值,var声明将a