我应该在JavaScript中使用void 0
或undefined
取消分配值,例如:
event.returnValue = void 0;
或
event.returnValue = undefined;
答案 0 :(得分:34)
如果您使用的是现代浏览器(支持javascript 1.8.5),使用undefined
和void 0
很可能是相同的(since undefined
is made not writable),除了{{1可以接受表达式作为参数并对其进行评估。
在较旧的浏览器中,(不支持javascript 1.8.5)最好使用void
。看看这个例子:
void 0
会打印
console.log(undefined);
var undefined = 1;
console.log(undefined);
1
实际上是一个全球财产。 (它不是关键字)。因此,可以更改undefined,其中undefined
是一个运算符,不能在javascript中重写并始终返回值void
。请查看我今天早些时候给出的一个类似问题https://stackoverflow.com/a/19367635/1903116的答案。
<强>结论:强>
因此,如果您担心兼容性,最好选择undefined
。
答案 1 :(得分:3)
“void 0”更安全。 “undefined”是一个值,就像任何其他值一样。可以用另一个值覆盖该值:
undefined = 3;
这会改变你的event.returnValue的含义你使用了undefined。但是,“void”是一个关键字,其含义无法改变。 “void 0”将始终给出未定义的值。
答案 2 :(得分:1)
void运算符通常仅用于获取未定义的原始值,通常使用“void(0)”(相当于“void 0”)。在这些情况下,可以使用未定义的全局变量(假设它尚未分配给非默认值)。
https://stackoverflow.com/a/1291950/2876804
只需使用undefined,因为它们都会评估它。