<a href="javascript:void(0)" id="loginlink">login</a>

我见过很多次这样的威胁,但我不知道这到底意味着什么。


当前回答

#vs javascript:void(0);的行为存在巨大差异;。

#滚动到页面顶部,但javascript:void(0);没有。

如果您正在对动态页面进行编码,这一点非常重要,因为当用户单击页面上的链接时,他们不想返回页首。

其他回答

Web开发人员使用javascript:void(0),因为这是防止标记默认行为的最简单方法。void(*anything*)返回undefined,它是一个错误的值。返回falsy值类似于在标记的onclick事件中返回false,该事件阻止其默认行为。

所以我认为javascript:void(0)是防止标记默认行为的最简单方法。

#vs javascript:void(0);的行为存在巨大差异;。

#滚动到页面顶部,但javascript:void(0);没有。

如果您正在对动态页面进行编码,这一点非常重要,因为当用户单击页面上的链接时,他们不想返回页首。

值得一提的是,检查undefined时有时会看到void 0,因为它需要更少的字符。

例如:

if (something === undefined) {
    doSomething();
}

对比:

if (something === void 0) {
    doSomething();
}

为此,某些缩小方法将undefined替换为void 0。

使用javascript:void(0)意味着HTML的作者误用了锚元素而不是按钮元素。

锚标记经常与onclick事件一起滥用以创建通过将href设置为“#”或“javascript:void(0)”防止页面刷新。这些值会导致意外复制/拖动链接时的行为,在新的标签/窗口、书签以及当JavaScript仍在下载时,出错或被禁用。这也向辅助技术(例如屏幕阅读器)。在这些情况下建议改用<button>。通常,您只应使用使用正确URL导航的锚点。

资料来源:MDN的<a>页面。

void运算符计算给定的表达式,然后返回undefined。它避免了刷新页面。