可以对未声明的变量进行操作而不报错的运算符
目前我知道的只有三个
赋值运算符 =
a = 1;window.a //1(function () { b = 1;})()window.b //1复制代码
直接对一个未声明的变量赋值,JS引擎(?)会将该变量视为全局对象(浏览器是window)上的一个属性,即视为一个全局属性。JS中为对象未声明的属性赋值不会报错
typeof & delete
typeof a //undefineddelete a //true复制代码
个人猜想这两个的原理应该和 = 差不多,即对待未声明的变量会将其视为全局对象上的属性。本来是对typeof操作未声明变量不报错感到挺奇怪的,但和=类比的话倒是能解释得通
未完待续...