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代码中的<a>标签里使用void运算符
<a href="javascript:void window.open();">打开一个新窗口</a>
3.阻止默认事件
阻止默认事件的方式是给事件置返回值false
//通常写法
<a href="http://example.com" onclick="f();return false;">文字</a>
使用void运算符能够取代上面写法
<a href="javascript:void(f())">文字</a>