我应该在 JavaScript 中使用void 0
orundefined
来取消赋值吗,例如:
event.returnValue = void 0;
或者
event.returnValue = undefined;
我应该在 JavaScript 中使用void 0
orundefined
来取消赋值吗,例如:
event.returnValue = void 0;
或者
event.returnValue = undefined;
如果您使用的是现代浏览器(支持 JavaScript 1.8.5),则使用undefined
并且void 0
很可能会产生相同的结果(因为undefined
它是不可写的),除了void
可以接受表达式作为参数并对其进行评估。
在较旧的浏览器(不支持 JavaScript 1.8.5)中,最好使用void 0
. 看这个例子:
console.log(undefined);
var undefined = 1;
console.log(undefined);
它会打印
1
undefined
实际上是一个全局属性 - 它不是关键字。因此, undefined 可以更改,其中 asvoid
是一个运算符,它不能在 JavaScript 中被覆盖并始终返回 value undefined
。只需检查我今天早些时候给出的类似问题的答案,为什么 Javascript 中的 void 需要参数?.
结论:
因此,如果您担心兼容性,最好使用void 0
.
“void 0”更安全。“未定义”是一个值,就像任何其他值一样。可以用另一个值覆盖该值:
undefined = 3;
如果您使用未定义,那将改变您的 event.returnValue 的含义。但是,“void”是一个关键字,它的含义不能改变。“void 0”将始终给出未定义的值。
void 运算符通常仅用于获取未定义的原始值,通常使用“void(0)”(相当于“void 0”)。在这些情况下,可以使用全局变量 undefined 代替(假设它没有被分配给非默认值)。
https://stackoverflow.com/a/1291950/2876804
只需使用 undefined,因为它们都会对其进行评估。