尚未弄懂的JS系列(未完待续)

206 阅读1分钟

可以对未声明的变量进行操作而不报错的运算符

目前我知道的只有三个

赋值运算符 =

a = 1;
window.a    //1

(function () {
    b = 1;
})()
window.b    //1

直接对一个未声明的变量赋值,JS引擎(?)会将该变量视为全局对象(浏览器是window)上的一个属性,即视为一个全局属性。JS中为对象未声明的属性赋值不会报错

typeof & delete

typeof a //undefined
delete a    //true

个人猜想这两个的原理应该和 = 差不多,即对待未声明的变量会将其视为全局对象上的属性。本来是对typeof操作未声明变量不报错感到挺奇怪的,但和=类比的话倒是能解释得通

未完待续...