可能重复:
Javascript null 或未定义
null
是保留字,但不是关键字。
因此它不能被覆盖。
undefined
是一个可以被覆盖的内置全局变量。这就是为什么您看到 jQuery 在其 IIFE 中重新定义它的原因。只是为了确保它没有被覆盖。
什么是 ES 5 中指定的何时使用每个的技术区别。
我知道我已经看到浏览器将未创建的 localStorage 属性设置为 null 或 undefined,具体取决于浏览器。
localStorage.not_defined === null // sometimes
localStorage.not_defined === undefined // sometimes
ES 5 在这种情况下和一般情况下如何指定它们的用法?
ES5 没有提供说明:
8.1 Undefined 类型 Undefined 类型只有一个值,称为 undefined。任何没有被赋值的变量的值都是未定义的。
8.2 Null 类型 Null 类型只有一个值,称为 null。
http://www.ecma-international.org/publications/standards/Ecma-262.htm