JS 里使用的 undefined 是个变量

学习 JS,都知道语言里包含一个 Undefined 类型,该类型中只包含一个值 undefined。 咱们可能写过这样的代码:javascript

let sometThing = undefined
复制代码

这里的“undefined”实际上是个变量,何以见得?下图为证: html

image.png
由于历史缘由, ECMAScript 标准并无把 undefined 列为保留字。也就是,咱们日常里使用的 undefined 实际上是全局对象 window 上的一个属性,能够理解成一个变量。只不过这个变量的值是 undefined,经过获取它的属性描述符,知道它是不可写入的。

image.png

但也不能彻底避免问题的出现:java

image.png

上图里,在 foo 函数内部,咱们定义了一个变量 undefined,以后再访问 undefined 获得的就不是 undefined 值,而是字符串 "Oops" 了。函数

那如何避免这个问题呢?能够使用 void 运算符,根据定义,它老是返回 undefined 值。学习

void 0 // undefined
复制代码

(完)spa

相关文章
相关标签/搜索