如果我们可以在Javascript中覆盖undefined,'void 0'从哪里获取值?

Fka*_*Fka 2 javascript

我知道这undefined不是保留关键字,人们可以用它做任何他想做的事情.所以我们可以覆盖它,例如.但是,如果我们undefined在Javascript中覆盖,那么void 0从哪里获取价值?

试试这段代码:

let undefined = 'test';
console.log(undefined); // prints out 'test'
console.log(void 0); // prints out 'undefined'
Run Code Online (Sandbox Code Playgroud)

乍一看,它看起来,Javascript提供了undefined内部某处的第二个版本,并且总是由于void运营商而返回它.

Ale*_*hur 7

void 0并没有从你的undefined变量中提取它的价值.它返回原始类型undefined:https://developer.mozilla.org/en-US/docs/Glossary/Primitive.

您的代码使用相同的名称定义变量 - 而不是重新定义基本类型本身.据我所知,这是不可能完成的.

有关此问题的更多信息:是否可以覆盖javaScript原始数据类型?