全局变量细节内容
在全局作用域中,具有var和不具有var变量存在差异。不具有var的变量相当于给window增加该变量的属性名和属性值,具有var的变量相当于给全局作用域增加一个全局变量同时也给window增加该变量的属性和属性值。
1,全局作用域下有无var情况
1.1 在变量赋值前引用该变量情况
具有var: 可以进行预解释,在具有var变量赋值前引用该变量不会报错
不具有var:不能预解释,在该变量赋值前引用时会报错"total is not defined",即未定义。
2,私有作用域中的无var情况
示例:
function fn(){
console.log(total);//未定义
total = 100;
}
fn();
console.log(total);//输出100
2.1 获取值
console.log(total); 私有作用域中存在的变量不属于私有时,为获取total变量的值进行输出,
根据作用域链方式向上级查找total的值,直到window层,未找到时报错未定义。
2.2 设置值
total = 100; 相当于为window增加一个属性名total和属性值100;