黄子涵

4.45 void 运算符

void 是 undefined 类型的单目运算符。无论向其传递什么操作数,其运算结果都会是 undefined 值。下面是一个具体的例子。

console.log("操作数为数值:");
console.log(void 0);
console.log("");
console.log("操作数为字符串值:");
console.log(void 'hzh');
console.log("");
var hzh = 0;
void hzh++; // 由于会先对操作数进行求值,所以 x 将自增
console.log("访问全局变量hzh:");
console.log(hzh);
console.log("");
console.log("通过void运算符访问全局变量hzh");
console.log(void(hzh)); // 常常会把操作数通过括号包围起来
[Running] node "e:\HMV\JavaScript\JavaScript.js"
操作数为数值:
undefined
操作数为字符串值:
undefined
访问全局变量hzh:
1
通过void运算符访问全局变量hzh
undefined
[Done] exited with code=0 in 0.173 seconds

void 这一运算符的用途比较难以理解,不过在客户端 JavaScript 中有不少相关的习惯用法。下面是一个在 HTML 中点击了标签 a 之后发送表单内容的 JavaScript 代码的例子。

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>void运算符</title>
</head>
<body>
<a href="JavaScript: void(document.form.submit())">发送HTML表单数据但不跳转页面</a>
</body>
</html>

image

hred 属性中所写的表达式如果具有值的话,则会被标签 a 认为是 URL 并跳转至该页面。为了阻止标签 a 的这一行为,需要将 href 属性中表达式的值强制设为undefined 值。对此最为简单的惯用方法就是通过 void 运算来实现。

posted @   黄子涵  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示