void
运算符能向期望一个表达式的值是 undefined
的地方插入会产生副作用的表达式。
void
运算符通常只用于获取 undefined
的原始值,一般使用 void(0)
(等同于 void 0
)。在上述情况中,也可以使用全局变量 undefined
来代替(假定其仍是默认值)。
console.log(void 0);// undefinedconsole.log(void 0);// undefined
由于 undefined
并不是一个关键字,其在 IE8- 浏览器中会被重写,在高版本函数作用域中也会被重写;所以可以用 void 0
来替换 undefined
。
var undefined = 10;console.log(undefined);// IE8-浏览器下为10,高版本浏览器下为 undefinedfunction t() {var undefined = 10;console.log(undefined);}console.log(t());// 所有浏览器下都是10
这个运算符最常用在客户端 URL 中,在 URL 中可以写带有副作用的表达式,而 void
则让浏览器不必显示这个表达式的计算结果。例如,经常在 HTML 代码中的 <a>
标签里使用 void
运算符。
<a href="js:void window.open();">打开一个新窗口</a>
阻止默认事件的方式是给事件置返回值 false
。
//一般写法<a href="http://example.com" onclick="f();return false;">文字</a>// 等价于<a href="js:void(f())">文字</a>