今天看代码时看到
if (argument1 === void 0 || typeof argument1 === 'object') {
啥意思?
概述
void
运算符会对它的操作数表达式进行求值,然后忽略掉求值的结果,直接返回 undefined
。
语法
void expression
描述
我们经常会在一个期望得到 undefined
返回值的地方使用 void
运算符,这样就可以忽略掉它后面的表达式的真实返回值。我们只去利用那个表达式执行时的副作用。
经常会有人用 void(0)
或者 void 0
来代替 undefined
变量来表示 undefined 值,因为他们担心自己拿到的 undefined
这个变量的值可能不是 undefined:可能是被重新赋过值的全局变量
。但这种担心通常是多余的,因为没有人会去那样做,不是吗。还有人说是为了性能考虑,因为可以避免变量查询,但这种性能差异通常是微乎其微的。window.undefined
(现代浏览器不允许这样做);也可能是一个别人定义的函数内部的局部变量 undefined
详情参见https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void