22."javascript:;" 和 "javascript:void" 有区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22."javascript:;" 和 "javascript:void" 有区别?相关的知识,希望对你有一定的参考价值。
void 运算符会对给定的表达式进行求值,然后直接返回 undefined
void 运算符通常只用于获取 undefined 的原始值,一般使用 void(0)(等同于 void 0)。在上述情况中,也可以使用全局变量undefined 来代替(假定其仍是默认值)。
<script> console.log(void(console.log("OK"))); </script> |
这段代码的运行结果为:
OK
undefined
一般我个人称 javascript:void(0)死链接
而javasccript:;是为空链接,其实他也也是直接返回的undefined,而前者是计算完毕之后返回undefined
个人习惯使用前者,好像感觉后置更快点,我感觉在前端就无所谓了
-----------------------------------------------------------------------
当用户点击一个以 javascript: URI 时,浏览器会对冒号后面的代码进行求值,然后把求值的结果显示在页面上,这时页面基本上是一大片空白,这通常不是我们想要的。只有当这段代码的求值结果是 undefined 的时候,浏览器才不会去做这件傻事,所以我们经常会用 void 运算符来实现这个需求
看代码:
<a href="javascript:void(0);"> <a href="javascript:void(document.body.style.backgroundColor=‘green‘);"> |
参考内容:
https://segmentfault.com/q/1010000002435291
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void
http://www.koikikukan.com/archives/2015/03/11-002222.php
额外再说一点:关于<a href="#"></a>
#包含了一个位置信息
默认的锚是#top 也就是网页的上端
如果想完成跟右侧等价的写法,我提供了三种方式进行参考
<a href="#" onclick="return false;">href</a>
<a href="javascript:return false;" onclick="调用的js方法">href</a>
<a href="####">这里是空链接,没有经过测试</a>
还有其他方式:这里就直接上代码了
<script>
function foo() {
// ...
}
</script>
<a href="http://user-domain/" onclick="foo();return false">test</a>
-----第二种方式
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(function(){
$(‘#test‘).click(function(e){
e.preventDefault();
// return false;
});
});
</script>
<a href="http://user-domain/" id="test">test</a>
以上是关于22."javascript:;" 和 "javascript:void" 有区别?的主要内容,如果未能解决你的问题,请参考以下文章