JavaScript中 void (0)的含义
概述
void运算符执行传递给它的语句,然后返回undefined。
语法
void expression
void 运算符通常仅仅被用来获取undefined的原始值,通常用void (0) (等同于void 0)。
我们为什么不直接用undefined呢?
undefined不是一个保留字(在JavaScript的某些环境中是个全局变量)。这也就是说undefined是个可用的变量名,你可以给它任意赋值。例如:
alert(undefined); //alerts "undefined" var undefined = "new value"; alert(undefined) //alerts "new value"
再看一个在链接中使用的例子:
javascript:URI,执行完uri中的代码,然后用返回的值替换当前页内容,除非返回值是undefined。
<a href="javascript:void(0);"> //点击不进行任何操作 </a> <a href="javascript:void(document.body.style.backgroundColor=‘green‘);"> //点击后背景变成绿色 </a>
所以,你不能安全的使用undefined,它返回的值未必是你预期的那样。而void则不会被覆盖,总会返回undefined。
为什么是void 0,为什么是0其他的不行吗?
其他的值也是可以的,比如1、13、”hello world”。使用0是因为比较短小简洁且符合语言习惯。
参考:
MDN void opter
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void
Stackoverflow的回答
What does ‘void 0’ mean ?
http://stackoverflow.com/questions/7452341/what-does-void-0-mean
时间: 2024-11-18 02:24:25