JavaScript变量作用域
var
- 定义的变量为全局变量
- 全局变量(函数也视为变量)都会被绑定到window对象上,可通过点记法调用
作用域提升
JS的特点,代码执行前会扫描所有语句,将所有变量的声明提升到函数顶部
let和const
- 定义的变量为局部变量
- 都具有块级作用域
全局变量注意点
- 所有全局变量都绑定到window对象上,所有会出现变量名冲突
- 减少冲突的一个方法是把自己的所有变量和函数全部绑定到一个全局变量中
// 唯一的全局变量MYAPP:
var MYAPP = {};
// 其他变量:
MYAPP.name = 'qhy';
MYAPP.version = 1.0;
// 其他函数
MYAPP.foo = function () {
return 'foo';
}
- 许多著名的JavaScript库都是这么干的:jQuery,YUI,underscore等等
- 为避免麻烦,会将全局变量用 $ 代替

浙公网安备 33010602011771号