3

编辑:澄清一下:我的问题不关心如何使用 void,而是 void 是否真的有用。我问这个是因为人们似乎使用它的方式非常令人反感......

运算符的MDN 参考提供了void一个正在使用的运算符的示例

<a href="javascript:void(0);">Click here to do nothing</a>
<a href="javascript:void(document.body.style.backgroundColor='green');">Click here for green background</a>

不完全是我们现在处理点击事件的那种方式。

void这个世界上还有地方吗?有人可以给我看一个使用 void 的好例子吗?

4

4 回答 4

5

用例#1 void(0),:如果你想要一个对真实的引用undefined(而不仅仅是变量,因为它可以被覆盖)你不需要void. 你可以像这样得到它:(function(){}()).

用例#2 void(exp),:如果你想执行代码然后返回undefined,你当然可以通过将代码包装在一个函数中来做到这一点:(function(){ exp; return undefined; }()).

所以,不,我们不需要void. 它没有什么独特之处。虽然它比上述解决方案短,所以如果你喜欢简短而晦涩的代码,你可以使用它(但请不要)。

于 2012-10-21T14:27:12.940 回答
2

Jakob 展示了void. 然而,正如他所提到void的,这并不是真正需要的,但我用它来测试undefined. 我用它来创建我自己的typeOf函数:

function typeOf(value) {
    if (value === null) return "null";
    if (value === void(0)) return "undefined";
    return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
}

你可以在这里读到我为什么这样做。

于 2012-10-21T15:39:59.860 回答
1

void 是用于返回undefined值的运算符,因此浏览器将无法加载新页面。关于 void 运算符需要注意的重要一点是它需要一个值并且不能单独使用。

例子:-

 <a href="javascript: void(0)">I am a link</a>

输出:-

 I am a link
于 2012-10-21T14:20:12.893 回答
0

void(0) 用于返回“未定义”,您可以只写“未定义”,也不要在 href 属性中使用该 javascript: - 因为它太旧了,它不适用于禁用 javascript 的用户,如果有人在新窗口中打开它,他们会看到类似 javascript:showPopup(27);

于 2012-10-21T14:19:58.317 回答