Fe-interview: [html] 第84天 a标签下的href="javascript:void(0)"起到了什么作用?说说你对javascript:void(0)的理解?

Created on 8 Jul 2019  ·  8Comments  ·  Source: haizlin/fe-interview

第84天 a标签下的href="javascript:void(0)"起到了什么作用?说说你对javascript:void(0)的理解?

html

Most helpful comment

  • a标签的href属性中写入javascript: xxx,实际上就是点击后执行xxx语句,覆盖其默认点击行为; 该理解有误,正确的作用如下:
    > 当用户点击一个以 javascript: URI 时,它会执行URI中的代码,然后用返回的值替换页面内容,除非返回的值是undefined。void运算符可用于返回undefined。(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void#JavaScript_URIs)
  • void关键字在js的含义为执行一个表达式,但不会返回任何值(即undefined);因此void(0)语句相当于执行表达式0,然后不返回任何值;
  • 综上,href="javascript:void(0)"的作用是点击链接后不发生任何行为,常用于阻止页面刷新或跳转;

参考文档:

  1. javascript:void(0) 含义 | 菜鸟教程
  2. <a> - HTML(超文本标记语言) | MDN
  3. void 运算符 - JavaScript | MDN

All 8 comments

上面的含义是,让超链接去执行一个js函数,而不是去跳转到一个地址,你还可以见到其他写法:
上面void(0)表示一个空的方法,也就是不执行
XXX
上面表示去执行方法showInfo();
仅此而已。
一般像你上面的写法时,一般都会给它添加一个onclick事件,通过事件去执行其他事情。

引用 博客:javascript:是伪协议,表示url的内容通过javascript执行。void(0)表示不作任何操作,这样会防止链接跳转到其他页面。这么做往往是为了保留链接的样式,但不让链接执行实际操作,

点击a标签的时候,执行js函数,void(0)实际什么也不执行,避免了点击跳转,还可以写成 javascript:;,

执行一个函数,不跳转

  • a标签的href属性中写入javascript: xxx,实际上就是点击后执行xxx语句,覆盖其默认点击行为; 该理解有误,正确的作用如下:
    > 当用户点击一个以 javascript: URI 时,它会执行URI中的代码,然后用返回的值替换页面内容,除非返回的值是undefined。void运算符可用于返回undefined。(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void#JavaScript_URIs)
  • void关键字在js的含义为执行一个表达式,但不会返回任何值(即undefined);因此void(0)语句相当于执行表达式0,然后不返回任何值;
  • 综上,href="javascript:void(0)"的作用是点击链接后不发生任何行为,常用于阻止页面刷新或跳转;

参考文档:

  1. javascript:void(0) 含义 | 菜鸟教程
  2. <a> - HTML(超文本标记语言) | MDN
  3. void 运算符 - JavaScript | MDN

简单来说,就是阻止a的默认跳转事件

不让其跳转。

顺便提示下:2019年8月,React 16.9发布了,弃用 javascript: 形式的不安全 URL,该版本会抛出警告。

void运算符的行为是,确保运算的返回值为undefined

Was this page helpful?
0 / 5 - 0 ratings