javascript中argument1 === void 0的意思

时间:2021-09-20 04:25:57

今天看代码时看到

 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