JS的运算符之void运算符实现a标签执行JS代码不跳转,不刷新页面

写在前面

在一些项目的设计需求中可能会出现这样的需求保留超链接的样式,用户在点击该超链接的时候执行一段JS代码,但页面不能跳转,也不能跳转回当前页面(刷新效果) 这时候我们应该使用JS中的void运算符,他是一元运算符void(表达式)
原理是:执行表达式,返回undefined。**javascript:**的作用是告知浏览器后面的是一段JS代码。因此以下程序的JavaScript:是不可以省略的

<a href="javascript:void(0)" onclick="test()">
			这是一个a标签,我想点击他的时候执行JS代码又不跳转页面也不刷新页面回顶部,使用到的是JS中Void运算符
</a>
<div onclick="test1()" >测试void运算符</div>
<script type="text/javascript">
				test=function(){
					alert("使用void函数不让页面跳转但是能执行JS代码");
				}
				
				test1=function(){
					console.log(void(0));
					alert(typeof(void(0)))
				}
			</script>

我通过测试发现其实void并非是没有返回值,而是返回了undefined。数据类型也是undefined,那么其实就发现了这样一个核心问题想要实现页面不会跳转不刷新,目标就是讲href后面的超链接路径让他消失掉。 如何让其消失呢,空值,null,undefiend都不能实现。因为此时超链接还是会认为跟在后面的href是路径而立马去执行。所以这个问题的关键是javascript: 只要我们告诉了浏览器跟在href后面的不是路径,不是字符串不是任何的值,而是一段JS代码,超链接便不会实现跳转,因为他找不到要跳转的路径了,路径被我们认为让其消失了。所以这里其实javascrit: 后面接上随意的简单的表达式即可,而void(0)可以说是最为简单的,所以用作其例子。但是核心并非void(0)。

猜你喜欢

转载自blog.csdn.net/qq_42285889/article/details/106396628