编辑:澄清一下:我的问题并不关心如何使用空洞,但是空洞是否真的有用。我之所以这样问,是因为人们似乎使用它的方式非常有价值......
void
运算符的MDN Reference为使用中的运算符提供了示例
<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的好例子吗?
答案 0 :(得分:5)
用例#1,void(0)
:如果您想要引用真实undefined
(而不仅仅是变量,因为它可以被覆盖),您不需要void
。你可以这样做:(function(){}())
。
用例#2,void(exp)
:如果您想执行代码然后返回undefined
,您当然可以通过将代码包装在函数中来完成:(function(){ exp; return undefined; }())
。< / p>
所以,不,我们不需要void
。它什么都不做。它比上述解决方案短,所以如果你喜欢简短而晦涩的代码,你可以使用它(但请不要)。
答案 1 :(得分: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();
}
您可以阅读我为何这样做here。
答案 2 :(得分:1)
void是一个用于返回undefined
值的运算符,因此浏览器将无法加载新页面。关于void运算符的一个重要注意事项是它需要一个值,并且不能单独使用。
实施例: -
<a href="javascript: void(0)">I am a link</a>
输出继电器: -
I am a link
答案 3 :(得分:0)
void(0)用于返回“undefined”,你可以在那里写“undefined”,也不要使用那个javascript:在href属性中 - 因为它太旧而且对于禁用javascript的用户不起作用,如果有人在新窗口中打开它,他们会看到像javascript:showPopup(27);