22."javascript:;" 和 "javascript:void(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>

时间: 2024-07-29 16:53:38

22."javascript:;" 和 "javascript:void(0)" 有区别?的相关文章

a href=#与 a href=javascript:void(0) 的区别

转载:http://blog.csdn.net/fightplane/article/details/5190037 a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="JavaScript:void(0)" onClick="window.open()"> 点击链接后,页面不动,只打开链接 <a href="#" onclick="javasc

【转】href=&quot;#&quot;与&quot;javascript:void(0);&quot;的区别

在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href="#" target="_blank"></a> 或者 1 <a href="javascript:void(0);" target="_blank"></a> 以上两种方法很多人都认为是空链接的方法,但是这两种方法是有区别的,到底有什么区别呢?今天我们来聊一下. href="#

超链接的#和javascript:void(0)的区别

转载于:http://www.uw3c.com/cssviews/css12.html 在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href="#" target="_blank"></a> 或者 1 <a href="javascript:void(0);" target="_blank"></a> 以上两种方法很多人都认为是空链接的方法,

href=&quot;#&quot;和javasrcript:void(0)的区别

当我们需要一个空链接时,通常有两种方法: <a href="#">这个一个空链接</a> 和 <a href="javascript:void(0)">这是另一个空链接</a> href="#" #之后跟着锚记名称,点击后跳转到页面指定位置:没有跟锚记名称则默认跳转到页面顶部 href="javascript:void(0)" void是一个操作符,这个操作符指定要计算一个表达式

href=&quot;javacript:;&quot; href=&quot;javacript:void(0);&quot; href=&quot;#&quot;区别。。。

一.href="javacript:;"  这种用法不正确,这么用的话会出现浏览器访问"javascript:;"这个地址的现象: 二.href="javacript:void(0);" 表示点击这个链接后执行一条javascript语句:void(0); 这条语句表示什么也不做,是个空语句,出现它的原因,就是因为这个链接里面会出现一个点击事件,onclick="sss()"; 三.href="#" 这个与

href=#与 href=javascript:void(0) 的区别

<a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" onClick="window.open()"> 点击链接后,页面不动,只打开链接 <a href="#" onclick="javascript:return false;"> 作用同上,不同浏览器会有差异. 点击链接后,不想使页

href=&quot;#&quot;与href=&quot;javascript:void(0)&quot;的区别

# 包含了一个位置信息,默认的锚是#top 也就是网页的上端. 而javascript:void(0), 仅仅表示一个死链接. 在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id. 如果你要定义一个死链接请使用 javascript:void(0) .

&lt;a href=”#”&gt;与 &lt;a href=”javascript:void(0)” 的区别

<a href=”#”>中的“#”其实是锚点的意思,默认为#top,所以当页面比较长的时候,使用这种方式会让页面刷新到页首(页面的最上部) javascript:void(0)其实是一个死链接,当使用超链接处理JS脚本(一般是click),又不想回到页首(这种情况可以理解为局部刷新)时经常使用 void 操作符的用法格式如下: 1. javascript:void (expression_r_r) 2. javascript:void expression_r_r 一般是带上(),这样可读性更

浅谈href=#与href=javascript:void(0)的区别

#"包含了一个位置信息 默认的锚点是#top 也就是网页的上端 而javascript:void(0)  仅仅表示一个死链接 这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首 而javascript:void(0) 则不是如此 所以调用脚本的时候最好用void(0) 或者<input onclick> <div onclick>等 打开新窗口链接的几种办法 1.window.open('url') 2.用自定义函数 <script>