JavaScript void
运算符用于显式返回undefined。它是一元运算符,意味着只能使用一个操作数。您可以如下所示使用它-独立使用或带括号。
void expression;
void(expression);
让我们看一些例子
void 0; //returns undefined
void(1); //returns undefined
void 'hello'; //undefined
void {}; //undefined
void []; //undefined
void myFunction();
void(myFunction());
如果您问为什么只需要返回undefined而不是返回就需要一个特殊的关键字undefined
:原因是在ES5之前,您实际上可以命名一个全局变量undefined
,例如:var undefined = "hello"
or var undefined = 23
,并且大多数浏览器都可以接受它;undefined
不能保证标识符实际上是不确定的¹。因此,要返回 实际的 未定义值,请使用void
运算符。它不是一个非常流行的运算符,并且很少使用。
//just a normal function
function test() {
console.log('hello');
return 2;
}
//lets call it
console.log(test()); //output is hello followed by 2
//Now lets try with void
console.log(void test()); //output is hello followed by undefined
void
放弃函数的返回值,并显式返回undefined。
¹在ECMAScript 5和更高版本中,undefined
保证仍可以定义全局变量(ECMA-262第5版,第15.1.1.3节),尽管仍可以在内部作用域中将变量命名为undefined
。