这个问题在这里已有答案:
11860
2018-03-05 18:42
起源
因为全球化 undefined 可以重新定义;这不是一个保守的词,比如 null。 - raina77ow
..可以重新定义,但从JavaScript 1.8.5开始,undefined是不可写的,根据ECMAScript 5规范。 - epascarello
void 0 是少于3的字符 undefined。 - Rocket Hazmat
也可用作删除/重新应用CSS类的hack: css-tricks.com/restart-css-animation - Sphinxxx
也可用于代替paranthesis将匿名函数定义为表达式(例如,对于IIFE, void function() { console.log("Look ma, no external paranthesis!"); }()) - Nick Bull
答案:
来自 MDN Docs无效
句法
void expression
用途
此运算符允许插入产生副作用的表达式 到评估为undefined的表达式的地方 期望。
void运算符通常仅用于获取未定义的运算符 原始价值,通常使用“void(0)”(相当于“void” 0“)。在这些情况下,可以使用未定义的全局变量 (假设它尚未分配给非默认值)。
为什么? 看到 MDN未定义
在旧版本的JavaScript中 undefined
可以被覆盖,但是从JavaScript 1.8.5开始,undefined是不可写的,根据ECMAScript 5规范。
10
2018-03-05 18:48
好的,所以这只是一种更安全的写作方式 undefined? - Nick Heiner
是的,这就是原因。 - epascarello
@Rosarch:要明确,全球化 undefined 是不可写的。您仍然可以在局部变量范围内对其进行遮蔽。但请确保您不允许任何代码重新定义 undefined,它使用起来非常安全。 - the system
void是JavaScript中的一个重要关键字,可用作在单个操作数之前出现的一元运算符,该操作数可以是任何类型。
此运算符指定要计算的表达式而不返回值。它的语法可能是其中之一 以下
1
2018-03-05 18:53