14

我看到人们void(0)一直在写作,但我不明白人们为什么使用括号。据我所知,他们没有目的。void不是函数,而是运算符。那么人们为什么要使用括号呢?他们有目的吗?即使在 MDN 上也使用了括号

4

3 回答 3

6

我不得不承认我过去曾多次使用过相同的构造,主要是因为我已经看到它在其他网站上被使用过。我不再使用它,因为不显眼的 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
于 2012-12-01T04:58:59.523 回答
2

“那么人们为什么要使用括号呢?”

人做傻事。

“他们有目的吗?”

不,他们不需要。

于 2012-12-01T04:51:02.013 回答
2

链接为您解释它。

澄清的一件事是 void 是一个运算符(不是函数)。因为这个 void(0) 在技术上是不正确的,尽管在实践中实现允许它以这种方式使用它应该在没有括号的情况下使用,例如 void 0。

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

void (expression)
void expression

MDN已经告诉你,虽然没有对这两种语法做出明确的说明,但它在技术上并不正确。

礼貌:

于 2012-12-01T04:55:15.210 回答