在JavaScript中全局范围内存在未定义变量的原因是什么?

Ada*_*zek 7 javascript undefined

我发现很多关于未定义的讨论作为价值,例如如何检查是否相等等.但是,作为全局变量存在未定义的"工程"原因是什么?对面没有变量...

console.log(undefined in this);  // logs true
console.log(null in this);  // logs false
Run Code Online (Sandbox Code Playgroud)

Mat*_*ics 5

在JavaScript中,null是一个保留字; undefined不是,但是由环境实现为值为的全局变量undefined.

你会发现,你可以改变的价值undefined,但不是null,除了严格模式(这将抛出一个错误)或ES5(这会忽略分配.)

现在,为什么undefined不保留,我不知道.