无论是浏览器环境,还是node环境,都会提供一个全局对象
- 浏览器环境:window
- node环境:global
全局对象有下面几个特点:
-
全局对象的属性可以被直接访问
-
给未声明的变量赋值,实际就是给全局对象的属性赋值
永远别这么干
-
所有的全局变量、全局函数都会附加到全局对象
这称之为全局污染,又称之为全局暴露,或简称污染、暴露
如果要避免污染,需要使用立即执行函数改变其作用域
立即执行函数又称之为IIFE,它的全称是Immediately Invoked Function Expression
IIFE通常用于强行改变作用域