本文详细解析JavaScript中的void关键字,阐述其作为一元运算符的语法结构,包括直接调用与括号包裹两种形式。重点介绍其在HTML链接中的常见应用,如通过javascript:void(0)阻止页面跳转,以及利用alert触发副作用而不返回值的技巧。此外,还展示了如何利用void生成undefined值及处理逗号表达式,帮助开发者准确掌握该语句的实际用途与限制。
void运算符的基本语法
void是JavaScript中的一个重要关键字,它作为一元运算符出现在其单个操作数之前,该操作数可以是任意数据类型。
该运算符的作用是指定表达式无需返回任何值,仅执行计算过程。其语法格式主要有以下两种形式:
<head>
<script type="text/javascript">
<!--
void func()
javascript:void func()
或者采用括号包裹的形式:
void(func())
javascript:void(func())
//-->
</script>
</head>
void在HTML链接中的应用
示例1:
这一操作在客户端JavaScript中最常见的应用场景是HTML链接。它用于评估具有边界效应的表达式,同时不将计算结果返回给浏览器显示。
例如,表达式 alert('Warning!!!') 会被执行以触发警告框,但计算结果不会加载或显示在当前文档中:
<head>
<script type="text/javascript">
<!--
//-->
</script>
</head>
<body>
<a href="javascript:void(alert('Warning!!!'))">Click me!</a>
</body>
示例2:
另一个例子是下面的链接,点击后没有任何反应,因为表达式“0”在JavaScript中不产生任何可见影响。这里,表达式“0”被计算执行,但其结果不会返回到当前文档:
<head>
<script type="text/javascript">
<!--
//-->
</script>
</head>
<body>
<a href="javascript:void(0))">Click me!</a>
</body>
利用void生成undefined值
示例3:
void的另一个用途是故意生成undefined(未定义)的值,如下例所示:
<head>
<script type="text/javascript">
<!--
function getValue(){
var a,b,c;
a = void ( b = 5, c = 7 );
document.write('a = ' + a + ' b = ' + b +' c = ' + c );
}
//-->
</script>
</head>