可能的重复:
JavaScript null 或未定义 https://stackoverflow.com/questions/6429225/javascript-null-or-undefined
null
是保留字但不是关键字。
因此它不能被覆盖。
undefined
是一个可以被覆盖的内置全局变量。这就是为什么您会看到 jQuery 在其 IIFE 中重新定义它。只是为了确保它没有被覆盖。
ES 5 中指定的何时使用每种技术的技术区别是什么。
我知道我见过浏览器将未创建的 localStorage 属性设置为 null 或未定义,具体取决于浏览器。
localStorage.not_defined === null // sometimes
localStorage.not_defined === undefined // sometimes
ES 5 在这种情况下以及一般情况下如何指定它们的用法?
ES5 没有提供澄清:
8.1 未定义类型 未定义类型只有一个值,称为未定义。任何尚未赋值的变量
值未定义。
8.2 Null 类型 Null 类型只有一个值,称为 null。
http://www.ecma-international.org/publications/standards/Ecma-262.htm http://www.ecma-international.org/publications/standards/Ecma-262.htm
这两者的区别相当模糊,并且在规范中没有明确说明。
常识如下:undefined
是从未分配过的变量和不存在的属性。
null
然而是变量或属性的一种状态,表明它没有分配值。
有些方法如getElement...
显式返回null
表明结果集为空。如果你的函数没有 return 语句,则隐式地undefined
而是返回。
一般来说,总是分配null
永不undefined
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)