许多人在hrefs中编写`javascript:void(0)`而不是`javascript:void 0`。括号做了什么吗?

时间:2012-12-01 04:47:05

标签: javascript

我看到人们一直在写void(0),但我不明白为什么人们会使用括号。据我所知,他们没有目的。 void不是一个函数,它是一个运算符。那么人们为什么要使用parens呢?他们是否有目的? Even on MDN the parens are used

3 个答案:

答案 0 :(得分:5)

我不得不承认我过去多次使用过相同的结构,主要是因为我看到它在其他网站上使用过。我不再使用它了,因为不引人注目的JavaScript比内联JavaScript更受欢迎;事实上,它几乎全部用于内联,以确保页面不刷新。

话虽如此,正如你所正确指出的那样,它是一个操作员,而不是一个功能;它仍然有效的原因很简单,因为(0)0是相同的,所以这就是它的评估方式:

void (0);

与...相同:

void 0;

我想它被编写为函数调用的原因是因为人们在使用内联时感觉更舒服:)

<a href="javascript:void 0">...</a> // hold on, that can't work, can it?!

<a href="javascript:void(0)">...</a> // ahhh, normality restored

答案 1 :(得分:2)

  

&#34;那么人们为什么要使用parens?&#34;

人们做傻事。

  

&#34;它们是否有用?&#34;

不,他们不需要。

答案 2 :(得分:2)

link为您解释。

  

这澄清的一点是,void是一个操作符(不是函数)。因为这个void(0)在技术上是不正确的,但在实践中   实现允许它以这种方式使用它应该没有使用   括号,例如无效0。

所以在技术上使用void(0)是错误的,但在实践中,void有两种不同的语法:

void (expression)
void expression

MDN 已经告诉您,虽然没有就这两种语法做出明确的陈述,因为它在技术上并不正确。

礼貌: