javascript:void() 和 herf="#" 区别

javascript:void(0) 和 herf="#" 区别

本文内容参考菜鸟教程(大部分都是原文内容)原文地址

javascript:void(0) 的含义

我们经常会使用到 javascript:void(0) 这样的代码,那么在 javascript 中 javascript:void(0) 中代表的是什么呢?

javascript:void(0) 中最关键的是 void 是JavaScript 中非常重要的关键字,操作符指定计算一个表达式但是不返回值。

语法格式如下:

  void function()
  javascript:void func()

或者

  void (func())
  javascript:void(fuc())

举例:下面的超链接,点击不会发生任何事。

  <a href="javascript:void(0)">单击此处什么也不会发生 </a>

当用户链接时,void(0) 计算为0,但 JavaScript 没有任何效果。

也可以像下面:

  <a href="javascript:void(alert('测试'))">单击此处什么也不会发生 </a>

返回值的情况:undefined

  var a = void(5)

herf="#"

# 包含了一个位置信息,默认的锚是 #top 网页顶端。页面很长的时候可以使用 # 来定位页面的具体位置,格式为: #+id 。

  <!-- 点击链接,跳到页面里的 id 为 pos 的位置-->
  <a herf='#pos'>点击定位到指定的位置</a>
  <br/>
  ...
  <br/>
<p id='pos' >尾部定位点<p/>

herf="#" 和 JavaScript:void(0)的区别

javascript:void(0) 是一个死链接。

herf="#" 可以定位到页面的指定位置。

总结 + 补充

void() 仅仅只是不返回任何值而已,但是括号内的表达式还是会运行。

// 阻止链接跳转,URL不会有任何变化
<a href="javascript:void(0)" rel="nofollow ugc">点击此处</a>

// 虽然阻止了链接跳转,但URL尾部会多个#,改变了当前URL。(# 主要用于配合 location.hash)
<a href="#" rel="nofollow ugc">点击此处</a>

// 同理,# 可以的话,? 也能达到阻止页面跳转的效果,但也相同的改变了URL。(? 主要用于配合 location.search)
<a href="?" rel="nofollow ugc">点击此处</a>

// Chrome 中即使 javascript:0; 也没变化,firefox中会变成一个字符串0
<a href="javascript:0" rel="nofollow ugc">点击此处</a>
posted @ 2022-11-24 12:28  kobedu  阅读(277)  评论(0编辑  收藏  举报