JS 里使用的 undefined 是个变量

ぃ、小莉子 提交于 2020-10-25 05:48:47

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

let sometThing = undefined
复制代码

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

image.png 因为历史原因, ECMAScript 标准并没有把 undefined 列为保留字。也就是,我们平常里使用的 undefined 其实是全局对象 window 上的一个属性,可以理解成一个变量。只不过这个变量的值是 undefined,通过获取它的属性描述符,知道它是不可写入的。

image.png

但也不能完全避免问题的出现:

image.png

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

那如何避免这个问题呢?可以使用 void 运算符,根据定义,它总是返回 undefined 值。

void 0 // undefined
复制代码

(完)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!