Undefined 类型表示未定义,它的类型只有一个值,就是 undefined。任何变量在赋值前是 Undefined 类型、值为 undefined,一般我们可以用全局变量 undefined(就是名为 undefined 的这个变量)来表达这个值,或者 void 运算来把任意一个表达式变成 undefined 值。
但是呢,因为 JavaScript 的代码 undefined 是一个变量,而并非是一个关键字,这是 JavaScript 语言公认的设计失误之一,所以,我们为了避免无意中被篡改,我建议使用 void 0 来获取 undefined 值。
担心被篡改,但是实验结果是:
报错翻译:未捕获的类型错误:无法将值分配给对象'#<window>'的只读属性'undefined'
原因
:
- 在现代 JavaScript 中,
undefined
是只读属性,无法被篡改
。 - 虽然没有必要强制使用
void 0
,但有些人出于习惯或兼容性考虑仍然会选择这种方式。 - 如果你的代码运行在现代环境中,并且你信任代码不会被恶意修改,那么直接使用
undefined
是完全可以的。