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>
hred 属性中所写的表达式如果具有值的话,则会被标签 a 认为是 URL 并跳转至该页面。为了阻止标签 a 的这一行为,需要将 href 属性中表达式的值强制设为undefined 值。对此最为简单的惯用方法就是通过 void 运算来实现。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律