javascript - 我应该为 JavaScript 链接使用哪个 "href"值, "#"还是 "javascript:void(0)"?

标签 javascript html performance optimization href

以下是构建链接的两种方法,该链接的唯一目的是运行 JavaScript 代码。在功能、页面加载速度、验证目的等方面哪个更好?

function myJsFunc() {
    alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>

function myJsFunc() {
    alert("myJsFunc");
}
 <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>

最佳答案

我使用 javascript:void(0) .

三个原因。鼓励使用#在开发人员团队中,不可避免地会导致一些人使用这样调用的函数的返回值:

function doSomething() {
    //Some code
    return false;
}

但后来他们忘记使用 return doSomething()在 onclick 中,只需使用 doSomething() .

避免# 的第二个原因是那个最后的return false;如果被调用的函数抛出错误,则不会执行。因此,开发人员还必须记住在被调用函数中适本地处理任何错误。

第三个原因是在某些情况下 onclick事件属性是动态分配的。我更喜欢能够调用函数或动态分配它,而不必专门为一种或另一种连接方法编写函数。因此我的onclick (或任何东西)在 HTML 标记中看起来像这样:

onclick="someFunc.call(this)"

onclick="someFunc.apply(this, arguments)"

使用 javascript:void(0)避免了上述所有令人头疼的问题,而且我还没有发现任何不利的例子。

因此,如果您是一个单独的开发人员,那么您显然可以做出自己的选择,但如果您作为一个团队工作,您必须声明:

使用 href="#" , 确保 onclick总是包含 return false;最后,任何被调用的函数都不会抛出错误,并且如果您将函数动态附加到 onclick属性确保它返回 false 并且不引发错误.

使用 href="javascript:void(0)"

第二个显然更容易沟通。

关于javascript - 我应该为 JavaScript 链接使用哪个 "href"值, "#"还是 "javascript:void(0)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/134845/

相关文章:

javascript - 如何将 Prop 传递给 {this.props.children}

html - 使 div 屏幕大小依赖

java - 在 Android 项目中添加 FbFlipper 会出现构建错误 = processDebugManifest > Manifest merge failed

performance - Delphi 中的文本文件写入性能

performance - postgreSQL优化

javascript - 如何防止从 WordPress 帖子页面中的所有帖子触发点击功能?

javascript - 生成带有文本框的表格

javascript - 无法访问vue js中的props数据?

html - 元素在媒体查询 : 380px - but not when resized from bigger width and down to 380px 中的位置很好

javascript - 如何使 HTML Canvas 矩形随鼠标拖动调整大小?