前端小知识-JavaScript中的void 0

146 阅读1分钟

JavaScript中void 0是什么

void是什么?

MDN中给void的定义是:void 运算符对给定的表达式进行求值,然后返回 undefined。简单来说就是你给出一个计算表达式通过void运算符进行求值,无论表达式值是什么返回都是undefined。 image_RJ6f2WnDmx.png

那么undefined又是什么?

MDN中的定义是:全局属性 undefined 表示原始值 [undefined]。它是一个 JavaScript 的 原始数据类型 。 但是它有可能在非全局作用域中被当作标识符(变量名)来使用(因为 undefined 不是保留字),这样做是一个非常坏的主意,因为这样会使你的代码难以去维护和排错。 image_svoSV2dPzc.png

通过上面代码可以看出,window、undefined在局部作用域中是允许被重写的,因此有时通过undefined来进行判断就存在风险。这时候void运算符的作用就体现出来了,void无论计算什么属性都返回undefined,没有额外风险。 image_sI515CUL5S.png

参考资料

MDN void运算符 developer.mozilla.org/zh-CN/docs/…

MDN undefined developer.mozilla.org/zh-CN/docs/…