在JS中有一种特殊的对象成为全局对象,这个对象在NodeJS对应的是global对象,在浏览器中对应的是window对象。由于全局对象的所有属性在任何地方都是可见的,所以这个对象又称为全局作用域。全部作用域中的变量不论在什么函数中都可以被直接引用,而不必通过全局对象。,满足以下条件的变量属于全局作用域:
1,在最外层定义的变量。
2,全局对象的属性
3,任何地方隐式定义的变量(未定义直接赋值的变量)
在任何地方隐式定义的变量都会定义在全局作用域中,即不通过var声明直接赋值的变量。模块化编程的一个重要原则就是避免使用全局变量。