学习 JS,都知道语言里包含一个 Undefined 类型,该类型中只包含一个值 undefined。
我们可能写过这样的代码:
let sometThing = undefined
这里的“undefined”其实是个变量,何以见得?下图为证:
window 上的一个属性,可以理解成一个变量。只不过这个变量的值是 undefined,通过获取它的属性描述符,知道它是不可写入的。
但也不能完全避免问题的出现:
上图里,在 foo 函数内部,我们定义了一个变量 undefined,之后再访问 undefined 得到的就不是 undefined 值,而是字符串 "Oops" 了。
那如何避免这个问题呢?可以使用 void 运算符,根据定义,它总是返回 undefined 值。
void 0 // undefined
(完)