为什么要使用void(0)?

时间:2013-12-19 15:01:14

标签: javascript html

我们假设您必须创建一个没有意义href的JavaScript链接。 (我知道这种做法值得怀疑。)在这种情况下,为什么这么多人会使用......

<a href="javascript:void(0);"> My link </a> 

知道void(0)评估为undefined,我可以简单地使用以下逻辑吗?

<a href="javascript:undefined;"> My link </a>

2 个答案:

答案 0 :(得分:4)

为什么人们使用void(x)代替undefined

两者都可以,但undefined是一个保留变量,其值可以更改:

undefined = true;

这将给出true而不是undefined。

void()是一个关键字,它总是返回undefined。无论你放在关键字中的是什么:

void('return false plox'); //will return false

此处有关此主题的更多信息:What does `void 0` mean?

jsFiddle


请注意,<a href="#">与它仍然充当链接并且会重定向您的情况不同,之前的方法会取消事件(类似于event.preventDefault)。

答案 1 :(得分:1)

有三个不同之处,

  1. void评估给定的表达式,然后返回undefined
  2. window.undefined是可写的,而void运算符将始终返回undefined
  3. void字符较少,如果您使用了很多代码,则会产生较小的代码
  4. 此外,如果您使用void返回undefined,则可以使用void 0,相当于void(0)