null是保留字但不是关键字.
因此它不能被覆盖.
undefined是一个内置的全局,可以覆盖.这就是为什么你看到jQuery在其IIFE中重新定义它的原因.只是为了确保它没有被覆盖.
什么时候使用ES 5中指定的技术区别是什么.
我知道我已经看到浏览器根据浏览器将未创建的localStorage属性设置为null或undefined.
localStorage.not_defined === null // sometimes
localStorage.not_defined === undefined // sometimes
Run Code Online (Sandbox Code Playgroud)
在这种情况下,ES 5如何指定它们的用法?
ES5未作澄清:
8.1未定义类型未定义类型只有一个值,称为undefined.未分配值的任何变量都具有未定义的值.
8.2 Null类型Null类型只有一个值,称为null.
http://www.ecma-international.org/publications/standards/Ecma-262.htm
这两者的区别相当含糊,在规范中没有明确.
常识如下:undefined是从未分配的变量和不存在的属性.
null 但是,它是一个变量或属性的状态,表示它没有赋值.
某些方法(如getElement...explicitely返回)null表示结果集为空.如果您的函数没有return语句,undefined则返回含义.
一般来说,总是分配null,永远不会undefined.
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |