首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么使用`javascript:void(0)`而不是`javascript:`作为href什么都不做占位符?

javascript:void(0)javascript:都是用作href属性的占位符,用于在点击链接时执行JavaScript代码。但是它们之间有一些细微的差别。

首先,javascript:void(0)是一个表达式,它的返回值是undefined。这意味着当点击这个链接时,不会发生任何具体的操作或页面跳转。这通常用于在不需要具体操作的情况下,为了满足HTML语法的要求而使用占位符。

相比之下,javascript:是一个伪协议,它指示浏览器执行后面的JavaScript代码。例如,javascript:alert('Hello')会在点击链接时弹出一个包含"Hello"的警告框。然而,如果在javascript:后面不跟任何有效的JavaScript代码,浏览器会尝试执行一个空的JavaScript语句,这可能导致不必要的错误或副作用。

所以,为什么使用javascript:void(0)而不是javascript:作为href什么都不做的占位符呢?

使用javascript:void(0)的主要原因是为了避免不必要的JavaScript执行。当我们只需要一个占位符来满足HTML语法要求,而不需要具体的JavaScript操作时,使用javascript:void(0)可以确保点击链接时不会执行任何JavaScript代码,从而避免可能的错误或副作用。

另外,使用javascript:void(0)还可以提高代码的可读性和可维护性。通过明确地使用void(0),我们可以清楚地表达出这个链接是一个占位符,而不是意图执行具体的JavaScript操作。

需要注意的是,随着现代Web开发的发展,使用javascript:void(0)作为占位符的需求已经减少。在大多数情况下,可以使用其他HTML元素或CSS样式来实现类似的占位符效果,而不需要使用JavaScript。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

a标签中防止跳转的href=javascript:;、void(0);等都是什么意思

标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 URL(路径),包括片段标识JavaScript 代码段。...javascript: 是表示在触发默认动作时,执行一段JavaScript代码, javascript:; 表示什么都不执行,这样点击时就没有任何反应。...test; 使用2个到4个#,见的大多是 "####" ,也有使用 "#all" 等其他的。一个无意义的标签指定,不做任何处理。...test; javascript:void(0) 表示一个死链接,执行空事件。...声明:本文由w3h5原创,转载请注明出处:《a标签中防止跳转的href="javascript:;"、"void(0);"等都是什么意思》 https://www.w3h5.com/post/228.html

3.5K20

探索JavaScript中Null和Undefined的深渊

/ 在讨论JavaScript中的原始数据类型时,大多数人了解基本知识,从String,Number和Boolean开始。...使用相等运算(==)将这两个虚假值与其他虚假值进行比较,可以发现它们除了自身之外不等于其他任何值: null == 0; // false undefined == ""; // false null...在这种情况下,JavaScript是一种动态的,弱类型的语言,它将仅默认为一个undefined值,不会引发错误。...这就是为什么typeof运算与值一起使用时返回“对象”的原因null。最初的理由是,null过去和现在通常用作需要对象的空引用,非常类似于占位。...由于它是一个外部API,因此尝试检索不存在的元素会返回一个null值,不是undefined。 通常,如果您需要为变量或属性分配非值,将其传递给函数或从函数返回,null则几乎总是最佳选择。

70910

28个JavaScript 编程黑科技:还有这种操作!

那你可以考虑这么做: var data = void 0; // undefined voidJavaScript中是一个操作,对传入的操作不执行并且返回undefined。...void后面可以跟()来用,例如void(0),看起来是不是很熟悉?...没错,在HTML里阻止带href的默认点击操作时,喜欢把href写成javascript:void(0),实际上也是依靠void操作不执行的意思。...当然,除了出于装逼的原因外,实际用途上不太赞成使用void,因为void的出现是为了兼容早起ECMAScript标准中没有undefined属性。void 0的写法让代码晦涩难懂。 ?...所以这就是为什么数据库存储对于货币的最小单位都是分。 简单说, 0.1和 0.2的二进制浮点表示都不是精确的,所以相加后不是 0.3,接近(不等于) 0.30000000000000004。

54530

令人惊叹的JavaScript装B黑科技

那你可以考虑这么做: var data = void 0; // undefined voidJavaScript中是一个操作,对传入的操作不执行并且返回undefined。...void后面可以跟()来用,例如void(0),看起来是不是很熟悉?...没错,在HTML里阻止带href的默认点击操作时,喜欢把href写成javascript:void(0),实际上也是依靠void操作不执行的意思。...当然,除了出于装逼的原因外,实际用途上不太赞成使用void,因为void的出现是为了兼容早起ECMAScript标准中没有undefined属性。void 0的写法让代码晦涩难懂。 ?...所以这就是为什么数据库存储对于货币的最小单位都是分。 简单说,0.1和0.2的二进制浮点表示都不是精确的,所以相加后不是0.3,接近(不等于) 0.30000000000000004。

58240

Html标签href的困惑记载

这边见大家都用。当然之前偶然看了张鑫旭一篇《疑问:为什么使用href=”javascript:void(0);”?》...,从中窥测之前多用的是。但为什么要用这个,他本人也没弄明白,然后读完,我也没明白。...- 指向页面中的锚(href=”#top”) 根据网搜得到的答案如下,亲测也的确如此: ​点击: 点击链接后不会回到网页顶部 <a href...最后,也更进一步的疑问:JavaScript中语句最后的分号是可以缺省的,那为何要使用javascript:;不是javascript:呢?是习惯还是规范,我也很疑惑!我也很疑惑!我也很疑惑!...总结:#包含了一个位置信息默认的锚是#top 也就是网页的上端; javascript:void(0)仅仅表示一个死链接,没有任何信息。

3.3K50

visual studio code使用教程_visual studio code 权威指南 pdf

)了,其用于在进行占位跳转时(1→2)对当前占位(1)适用正则替换。...新特性听起来和变量转换很像,它们的区别在于占位转换适用于占位变量转换适用于变量。前者更灵活,后者更省心。...占位还可以嵌套,例如{1:another 比如,结构体的代码片主体可以这样写: struct ${1:name_t} {\n\t$2\n}; 作为「Placeholder」的name_t一方面可以提供默认的结构名称...-- --> 注:这些都是变量名,不是宏,在实际使用的时要加上 $ 。 3.4.2 变量转换 变量转换可将变量的值格式化处理后插入预定的位置。...上述全部内容我们都在前文介绍过了,因此此处不做赘述。我们唯一需要关注的是转换触发的时机:占位转换将在进行占位跳转(假设 1→2)的时候自动适用到当前占位(1)。

10.9K60

编写一个非常简单的 JavaScript 编辑器

你可以在TypeScript中使用JavaScript库,并且当你想要使用JavaScript库的时候,你可能需要导入该库中所有类型的描述。这是我们在第一行代码中所导入的内容。 ? ? ?...那么,generateHTML做什么呢?它生成HTML代码,用于放置跨度以指示插入位置的文本:此元素是插入占位为什么我们不放置插入本身呢?...因为插入有大小,所以如果我们在文本内部移动插入,那么我们将导致所有的文本总是在移动。相反,我们移动大小为零的插入占位,然后我们使用插入放置在插入占位上方,但在不同的z-index。...通过这种方式,基本上我们就可以在我们想要看到的地方看到插入不必左右移动文本就为了给插入空出地方。...结论 好的,让我们先简单的开始:一个非常小的编辑器,在这个编辑器中我们可以键入、删除和使用箭头移动。这不是最令人印象深刻的编辑器。但它简单,也可以工作。

92831

js中javascript:void(0)什么意思

void运算计算给定的表达式,然后返回undefined。 void运算通常仅用于获取未定义的原始值,通常使用void0)”(等效于“ void 0”)。...之所以要使用链接的href这样做是因为,通常,一个javascript:URL会将浏览器重定向到评估该JavaScript结果的纯文本版本。 但是,如果结果不确定,则浏览器将停留在同一页面上。...来源: here 此处:Javascriptvoid是一个操作,该操作指定要计算一个表达式但是不返回值。...当我们使用 void 操作指定超级链接时,表达式会被计算但是不会在当前文档处装入任何内容。...单击此处什么也不会发生 //javascript:void(0) 仅仅表示一个死链接 (2)下面的代码创建了一个超链接,用户单击时会提交表单

3.2K00
领券