JS 中的 void 0

160 阅读1分钟

首先,需要知道的是 void 0 === undefined

什么是 void ?

void是一元运算符,出现在操作数的左边,操作数可以是任意类型的值。

void 的行为特点:

  • 不管void 0后的运算数是什么,总是返回undefined
  • void会对其后的运算数做取值操作,因此若属性有个getter函数,则调用该函数。

可以使用 void 0 替换 undefined

但在实际项目中是否真的需要使用void 0替换,还有待商榷。

原因:

  1. 不好维护。可能后续的同事不太清楚void 0的使用。
  2. 如果是没有声明的值,直接判断,会报错(见例)。

var x;
if(x === void 0) {
    // 执行这些语句
}

// 没有声明y
if(y === void 0) {
    // 抛出一个RenferenceError错误(与`typeof`相比)
}