前端面试——href="#"、href="javascript:void(0)"与href="javascript:;"的区别

JavaScript面试陷阱题:从var/let到TDZ的执行机制解析 JavaScript基础概念如变量声明、作用域和执行上下文,是理解前端运行时行为的核心。其底层原理涉及V8引擎的变量提升、暂时性死区(TDZ)、闭包捕获与事件循环调度等关键机制。掌握这些不仅能规避常见线上故障,更能提升代码可维护性与调试效率。在真实业务中,var与let的行为差异、javascript:void(0)的安全边界、setTimeout闭包陷阱等高频问题,本质都源于对执行环境与内存模型的认知断层。本文聚焦JS语言本身,结合V8源码与DevTools实操,还原从语法表达到字节码执行的完整链路,帮助 阅读详情

我们在使用a标签的空链接时,通常写为 href=# 或者 href=javascript:void(0) ,这两种写法有什么区别呢?我想很多人都不会去深究,但是这两种写法出来的效果有时候是不一样的。

概括来说,这两种写法有如下几个区别:

  1. # 包含了一个位置信息,默认的锚是 #top 也就是网页的上端。
  2. 而javascript:void(0), 仅仅表示一个死链接,当 href=javascript:void(0) 的空链接被点击时,页面不会有任何反应。
  3. 在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
  4. 如果你要定义一个死链接请使用 javascript:void(0) 。

下面实例代码演示上述1、2点的区别:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>a标签空链接href=#与href=javascript:void(0)的区别</title>
</head>

<body>
    <p style="height:1300px;width:100%;background:#cccccc"></p>
    <p style="width:100%;padding:10px;background:#999999">
        <a href="#">空链接: href=#</a>
        <br>
        <a href="javascript:void(0)">空链接: href=javascript:void(0)</a>
    </p>
    <p style="height:100px;width:100%;background:#cccccc"></p>
</body>

</html>

使用 # 来定位页面的具体位置的实例代码:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>a标签空链接href=#与href=javascript:void(0)的区别</title>
</head>

<body>
    <p style="width:100%;padding:10px;background:#999999">
        <a href="#p1">跳到目标位置: href=#p1</a>
    </p>
    <p style="height:100px;width:100%;background:#cccccc"></p>
    <p id="p1" style="height:1000px;width:100%;padding:10px;background:#999999">目标位置:id="p1" </p>
</body>

</html>

 

为什么要使用href=”javascript:void(0);”

href=”javascript:void(0);” 的含义是,让超链接去执行一个js函数,而不是去跳转到一个地址,而void(0)表示一个空的方法,也就是不执行js函数。

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

<a href="javascript:void(0)" onclick="window.open()">

点击链接后,页面不动,只打开链接。而下面的语句:

<a href="#" onclick="javascript:return false;">

作用一样,但不同浏览器会有差异。

多数情况下,当某一链接要执行一个javascript程序时,我们可以使用href=javascript:void(0)再加上onclick事件来实现,如下面实例代码:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>a标签空链接href=#与href=javascript:void(0)的区别</title>
</head>

<body>
    <p style="width:100%;padding:10px;background:#999999">
        <a href=javascript:void(0) onclick=func()>点击执行函数func()</a>
    </p>
    <script>
    function func() {
        alert("ok");
    }
    </script>
</body>

</html>

javascript:;与javascript:void(0)的区别

  1. 从执行效果来看:“javascript:;”直接返回undefined。“javascript:void(0);”要去执行一次表达式“0”,然后返回undefined。
  2. 性能上的区别:javascript:void;会多一次表达式解析。
  3. 空间上区别:“void(0);”比“;”多7个字符。
<a href="#" >test</a> //点击链接,页面默认上滚到页的顶部,但可以加上 onclick="return false",防止上滚到页的顶部
<a href="####" >test</a> //使用2个到4个#,见的大多是"####",也有使用"#all"等其他的。默认不上滚到页的顶部
<a href="javascript:void(0);" >test</a> //新浪微博写法,javascript:void(0) 仅仅表示一个死链接,执行空事件
<a href="javascript:;" >test</a> //QQ空间写法

 

酒店管理系统实战:HTML+JSP+MySQL完整开发指南 酒店住宿管理系统是Java Web初学者理解请求响应、数据库交互与事务控制的经典载体。其本质是基于HTTP协议的CRUD应用,依托Servlet生命周期管理业务逻辑,通过JDBC连接MySQL实现数据持久化,并利用JSP+JSTL完成动态页面渲染。该技术组合虽轻量,却完整覆盖用户认证、库存锁定、金额计算、中文编码等工程关键点,特别适合验证事务一致性(如SELECT ... FOR UPDATE)、防范SQL注入(PreparedStatement)及保障金融级精度(DECIMAL字段)。广泛应用于中小酒店信 阅读详情

相关推荐

欧姆龙PLC与fanuc发那科机器人进行Ethrenet ip通信测试

近期在做发那科FANUC的通讯,会吧CC-LINK、Profibus-DP、Profinet I/O、DeviceNet、EtherNet/IP这些常用通讯做成文档发上来,大家喜欢的话可以关注 注:做对应的通讯,在机器人控制柜都需要安装对应的板卡以及软件功能 截图中的程序设置和机器人EDS插件在下面链接 https://download.youkuaiyun.com/download/gojava/13770799 PLC为主站 机器人为从站 一、硬件部分 欧姆龙PLC ...

七兔自习室 1万+

href=“#“是什么意思呢?

“#”的意思是链接当前页面。 一般的格式是: <a href="#"></a> href在是CSS代码的一种意思是指定超链接目标的URL。 在HTML和jsp中作用一般为插入超链接,“#”是默认的当前页面,可以把#后面加上想要跳转的页面。 <a href="#" οnclick="window.close()">关闭</a> 。 将href="#"是指链接到当前页面,其实是无意义的,页面也不会刷新,关键是后面的 οnclick="window.close

Ice Point. 1万+

Auto.js凉了之后,我们该用啥?AutoX.js保姆级环境搭建与第一个脚本实战(2024最新)

本文详细介绍了AutoX.js作为Auto.js替代方案的环境搭建与脚本开发实战指南。从技术生态现状分析到2024最新环境配置,再到编写第一个实用脚本和进阶调试技巧,帮助开发者无缝迁移至AutoX.js平台。特别适合需要手机自动化的JavaScript开发者,涵盖从基础到企业级应用的全套解决方案。

weixin_28737073的博客 391

href=”javascript:void(0);”的含义

1.href=”javascript:void(0);”的含义 即让超链接去执行一个js函数,而不是去跳转到一个地址,而void(0)表示一个空的方法,也就是不执行js函数。 2.为什么要使用href=”javascript:void(0);” javascript:是伪协议,表示url的内容通过javascript执行。void(0)表示不作任何操作,这样会防止链接跳转到其他页面。这么做其实往往是为了保留链接的样式,但不让链接执行实际操作。 <a href="javascript:void(0)"

m0_51358164的博客 1万+

华为手机连接Win11失败?内核隔离与驱动签名冲突的终极解决指南

在Windows操作系统中,驱动程序是硬件与系统通信的桥梁,其数字签名机制是保障系统内核安全的核心防线。基于虚拟化的安全技术通过强制验证驱动签名,能有效隔离恶意代码,提升系统抵御高级威胁的能力。然而,严格的签名策略有时会与部分硬件驱动产生兼容性问题,导致设备无法识别,直接影响文件传输、应用调试等核心工作流。本文聚焦于华为手机在开启Windows 11内核隔离功能时出现的连接故障,深入剖析驱动签名验证与Hypervisor保护的代码完整性原理,并提供从驱动更新、策略调整到无线替代方案的完整解决路径,帮助用户在

weixin_31309419的博客 353

Rockchip平台之RK3566/3568 OS02N10

文章摘要 本文主要介绍了200W摄像头传感器OS02N10在RK3566平台上的兼容与适配过程。作者基于之前的400W摄像头兼容经验,针对200W摄像头进行了类似的适配工作。文章详细阐述了RK3566芯片的特性和OS02N10传感器的技术参数,包括分辨率、接口和功耗等。适配过程分为三个关键部分:DTS设备树文件配置(定义I2C地址、电源域和GPIO控制等)、驱动文件开发(寄存器初始化和操作)以及XML和JSON配置文件调整(图像参数设置)。作者特别强调了初始化数组中空寄存器终止条件的重要性,并分享了兼容过程

different_xzh的博客 2412

关于javascript:void(0)

为什么要使用href=”javascript:void(0);” javascript:是伪协议,表示url的内容通过javascript执行。void(0)表示不作任何操作,这样会防止链接跳转到其他页面。这么做往往是为了保留链接的样式,但不让链接执行实际操作, <a href="...

552

YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块

本文记录的是基于FasterNet的YOLOv11轻量化改进方法研究。FasterNet的网络结构借鉴 CNN 的设计理念,通过提出的PConv减少推理时的计算和内存成本,同时减少通道数并增加部分比例,降低延迟,并通过后续的PWConv来弥补特征信息可能缺失的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的和六种模型,以满足不同的需求。

Limiiiing的博客 2030

href=“JavaScript:;”是啥意思?

这几天有人问到,在a标签里面,href=‘javascript:;’是啥意思 我理解的是这样的: 首先:<a> 标签中必须提供 href 属性 但是这个就出现了一个问题,如果我不想让他跳转,那么这个时候href应该怎么赋值。有三种方法: 第一:href=‘javascript:;’ 代表的是发生动作时执行一段javascript代码,但是这个代码是空的,所以什...

yanhuo0414的博客 3万+

SAP-ABAP:SAP IDOC 全面学习指南

SAP-ABAP:SAP IDOC 全面学习指南

baidu_35680696的博客 1616

小白也能轻松部署 OpenClaw:OpenClaw可视化部署工具+OpenClaw可视化管理工具分享

分享一个OpenClaw可视化一键部署工具,帮你快速打造属于自己的AI助手 🚀

XiaoqiangClub的博客 6711

a标签的href="javascript:void(0)"和href="#"的区别

修正一个说法上的bug吧。对于IE6来说,点击后gif暂停bug仅仅发生在“javascript:伪协议未加分号”的情形下。 我再来提供一个视角吧。 给<a>标签增加href属性,就意味着以下事情: :link选择器可以选择到它 这个a标签可以获得焦点(可以通过tab按键访问到) 在浏览器的默认样式表中,有href属性的<a>标签才有cursor:...

weixin_30463341的博客 301

Matlab之App Designer 如何进行三维图形绘制教程

基于Matlab中的App Designer设计可视化界面并进行数据导入及3D绘图,可以直观的在可视化界面上展示分析结果,方便用户进行图形的操作。本文采用案例讲解的方式,详细介绍了如何采用Matlab App Designer建立数据3D绘图的GUI可视化界面的方法和详细的过程步骤,并介绍了导入数据进行计算时需要注意的相关事项,同时提供了详细的代码,以便读者进行学习和操作。

m0_59012156的博客 2066

a标签中href调用js的几种方法,程序员进阶

这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在href里面执行javascript语句这种方法是很多网站最常用的方法,也是最周全的方法,onclick方法负责执行js函数,而void是一个操作符,void(0)返回undefined,地址不发生跳转。

m0_61943758的博客 4323

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

引用URL的标签属性href与src的区别是什么?

引用URL的标签属性href与src的区别是什么?

weixin_42397937的博客 1493

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

前端面试真相:从HTML/CSS/JS底层原理到Vue响应式内核

前端开发的本质是浏览器渲染管线的协同运作,HTML定义语义结构与解析模式,CSS控制布局与绘制行为,JavaScript驱动执行上下文与事件循环,三者共同构成页面生命周期的基础。理解`<!doctype html>`如何触发标准模式、`flex-basis`在Flexbox中的物理意义、`Proxy`相比`Object.defineProperty`的响应式演进,不仅能解答高频面试题,更能支撑真实项目中的性能优化与跨端兼容决策。尤其在Vue等框架深度应用中,对`nextTick`微任务机制、模板编译逻辑、`

weixin_30938149的博客 539

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

面试题 【部分】

1、什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分。这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或区域。4个部分一起构成了css中元素的盒模型。 2、行内元素有哪些?块级元素有哪些? 空(void)元素有那些? 行内元素:a、b、span、img、input、strong、select、label、em、butt

m0_59199315的博客 245

前端面试题总结——HTML(持续更新中)

前端面试题总结——HTML(持续更新中) 1.什么是HTML? HTML:HyperText Markup Language超文本标记语言 2.XHTML和HTML有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的标记语言 3.简述一下你对HTML语义化的理解? html语义化让页面的内容结构化,结构更清晰,...

weixin_33753845的博客 324

零基础到项目实战:JavaScript 系统化学习路线与核心机制解析

JavaScript 是前端技术体系中应用最广的基础语言。要真正掌握这门语言,仅停留在语法片段上远远不够,需要建立从语法到运行机制的系统认知。此时,作用域、闭包、原型链、异步编程等核心概念成为理解代码执行顺序和排查工程异常的关键。以事件循环为例,微任务与宏任务的调度关系直接决定了异步输出顺序。另一方面,学以致用是驱动知识内化的有效方式:从浏览器编程中的 DOM 交互与接口调用,到工程化下的框架衔接,最终通过前后端分离与 API 联调项目将知识点串联成真实可运行的完整能力。一套从语法入门到项目实战的渐进式学习

weixin_34032621的博客 442

利用js查找页面中的内链,外链

起初没听说过内链外链,只有链接锚文本,在面试中被问到如何查找到页面中的内链和外链,就在想,什么是内链和外链啊??????? 后来面试官给我解释了一下他们的区别,自己稍微懂了,自己当时回答的是通过获取a标签的href属性,查找字符串中是否存在href,后来又被问到如果用选择器怎么用呢?自己不会.... 后来下来又想到这个问题,觉得自己猪啊,有属性选择器来匹配,但是当时为什么回答不上来,因为这个是...

weixin_30514745的博客 479

React平滑滚动实战:原生API原理、兼容性与Hooks封装

平滑滚动是现代Web应用的基础交互能力,其本质是浏览器对滚动行为的动画化控制,依赖于CSS scroll-behavior声明与DOM scrollIntoView、scrollTo等原生API协同工作。理解其底层原理(如渲染时序、坐标系差异、viewport与document参照系切换)是解决跨浏览器不一致、React并发渲染冲突、iOS Safari兼容性等工程问题的关键。技术价值在于保障滚动行为的一致性、可控性与可中断性,支撑锚点导航、进度条、吸顶菜单、回到顶部等高频场景。本文聚焦React生态下的落

weixin_34200628的博客 366

CSS属性选择器:6种语法、工程价值与真实项目避坑指南

CSS属性选择器是Web前端中基于HTML属性进行元素匹配的核心机制,其原理是通过属性存在性、精确值、单词、连字符、前缀及子串等6种语义化模式实现静态声明式控制。相比类名和ID选择器,它天然契合组件化开发与状态驱动设计,显著提升样式与业务语义的一致性,降低JS-CSS耦合度。技术价值体现在无障碍适配(如[lang|="zh"])、主题系统(:root[data-theme])、表单验证([aria-invalid])和响应式断点([data-breakpoint])等关键场景。本文深入解析各语法差异、性能边

afhu47033的博客 425

CSS淡入页面切换的工程化实现与避坑指南

页面切换时的视觉连贯性是现代Web用户体验的基础需求,其本质是通过空间隐喻降低用户认知负荷。CSS的opacity过渡提供轻量级实现原理,但仅靠声明式样式无法解决DOM销毁、时机控制与状态协调等核心问题;JavaScript必须承担过渡流程总控角色,实现拦截跳转、状态锁、历史同步与SSR兼容。技术价值在于以最小性能代价(仅重绘、零重排)建立可预测的导航反馈,广泛应用于单页应用路由、电商详情页跳转及教育平台课程切换等场景。本文聚焦opacity过渡与JavaScript协同机制,覆盖从基础淡入到滚动驱动淡入的

hqmln的博客 376

TypeScript 工程化落地:从 IDE 智能到团队契约的四层价值

TypeScript 不是 JavaScript 的语法糖,而是面向现代前端工程的类型契约系统。其核心原理在于通过静态类型声明,在编译期建立可验证的数据结构与函数接口,从而将运行时不确定性前置为开发期确定性。技术价值体现在四大维度:提升 IDE 智能补全与跳转精度、保障大规模重构安全性、实现跨前后端机器可验的协作契约、抑制长期维护中的代码熵增。典型应用场景包括中后台系统开发、Vue 3/React 组件类型约束、API 响应泛型封装及动态表单校验建模。本文聚焦 TypeScript、IDE 协同机制与工程落

weixin_34111790的博客 595

人生最好的php,mysql,linux,redis,docker等相关技术经典面试题,新手收藏学习,持续更新中。。。

php面试题 1、写出你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面) # 200:服务器请求成功 # 301:永久重定向,旧网页已被新网页永久替代 # 302:表示临时性重定向 # 400:错误请求 # 401:未授权,没有权限,未登录 # 403:禁止访问 # 404:找不到页面 # 500:系统错误,服务器错误 # 502:无效响应 # 503:服务不可用,服务器由于维护或者负载过重未能应答 # 504:网关超时(nginx做为反向代理服务器,所连接的应用服务器无响应导致

cxhblog的博客 1万+

React JSX 语法解析与组件化开发实践

JSX 是 React 生态中的核心语法糖,它将类似 HTML 的标记转换为标准的 JavaScript 函数调用。这种语法转换通过 Babel 等构建工具完成,最终生成 React.createElement() 调用。JSX 的价值在于提升 UI 代码的可读性和开发效率,同时保持 JavaScript 的完整表达能力。在组件化开发中,React 通过函数组件和类组件两种形式实现 UI 复用,配合 Hooks 机制可以管理状态和副作用。这些特性使得 React 成为构建现代 Web 应用的主流选择,特别适

weixin_33691817的博客 324
上一篇: 前端面试——前端页面有哪三层构成,分别是什么?作用是什么?
下一篇: 前端面试——JavaScript中this的作用
哈哈hyc
博客等级 码龄8年 131粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值