码迷,mamicode.com
首页 > 编程语言 > 详细

22."javascript:;" 和 "javascript:void(0)" 有区别?

时间:2016-02-27 10:53:25      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

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);">
  这个链接点击之后不会做任何事情,如果去掉 void(),
  点击之后整个页面会被替换成一个字符 0。
</a>

<a href="javascript:void(document.body.style.backgroundColor=‘green‘);">
  点击这个链接会让页面背景变成绿色。
</a>

 

 

参考内容:

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(0)" 有区别?

标签:

原文地址:http://www.cnblogs.com/pangxiansheng/p/5222420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!