void 作为运算符后面接的是表达式,void expression。而void(0)也是被当做void 0。如果直接void(),那么我觉得应该是把void当做函数使用了,但是此时void并没有定义。

发布时间 2023-11-15 23:27:27作者: 龙陌

void();

上面表达式的结果是:

A
undefined

B
TypeError

C
null

D
SyntaxError

正确答案:D

typeof 1; //'number'
typeof (1);//'number'
typeof (); //SyntaxError 语法错误
void 0; //undefined
void (0);//undefined
void (); //SyntaxError 语法错误

也就是说错的不是void,而是后面的操作数不能为()

void是一元运算符,它出现在操作数之前,操作数可以是任意类型,操作数会照常计算,但忽略计算结果并返回undefined。由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void来让程序更具语义

console.log(void 0); // undefined

console.log(void(0)); // undefined

常见的作用:

1.替代undefined

由于undefined并不是一个关键字,其在IE8-浏览器中会被重写,在高版本函数作用域中也会被重写;所以可以用void 0来替换undefined

var undefined = 10;

console.log(undefined);//IE8-浏览器下为10,高版本浏览器下为undefined

function test(){

  var undefined = 10; 

  console.log(undefined); 

}

console.log(test());//所有浏览器下都是10

2.客户端URL

这个运算符最常用在客户端URL——javascript:URL中,在URL中可以写带有副作用的表达式,而void则让浏览器不必显示这个表达式的计算结果。例如,经常在HTML代码中的标签里使用void运算符

打开一个新窗口

3.阻止默认事件

阻止默认事件的方式是给事件置返回值false

//一般写法
文字

使用void运算符可以取代上面写法

文字

答案:D(chrome、firfox以及node环境下测试都是SyntaxError)

void 作为运算符后面接的是表达式,void expression。而void(0)也是被当做void 0。如果直接void(),那么我觉得应该是把void当做函数使用了,但是此时void并没有定义。