JavaScript中 void(0) 的含义

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其他的不行吗?

其他的值也是可以的,比如113”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

原文地址:https://www.cnblogs.com/kaixinbocai/p/4001721.html