2016-11-12 78 views
1

为什么浏览器抛出错误为var null;为什么javascript`var undefined`确定,但`var null`抛出错误

我读Javascript Garden-undefined,我知道undefined是一个全局变量不同null

但我只是好奇,关于为什么做对比var null;
时抛出的错误,当var Number=123var Boolean=123var Object=123var undefined=123(虽然没用)等,它的确定。我知道,null不是JavaScript中的保留字和关键字。它应该是一个原始类型。

varnull有什么关系?

+0

“此外,文字空,真,假不能用作ECMAScript中的标识符。” https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords – mplungjan

+0

@mplungjan谢谢,它的useful.I不知道NullLiteral,和之前BooleanLiterals,它是真正为一个谜我想知道你为什么认为它是重复的。如果我得到了投票结果,我应该删除这个连接符吗? – PageYe

+0

我试过了,但是我找不到一个说“null”是保留字的官方文档 - 我们都只是认同它,我个人并不在乎。我从来没有使用可能被保留的变量名称。这里是一个很酷的测试者:https://mothereff.in/js-variables – mplungjan

回答

0

区别是nullreserved identifierundefined不是。

从文档:

的文字空,真,假,不能用作ECMAScript的标识符。

这是语法定义的一部分,而全局变量只是您可以(通常)重写的东西。

+0

我不完全赞同you.null不是一个保留的关键字。它只是一个文字。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Literals – PageYe

+2

从@mplungjan注释也非常具体,我会在这里重复一遍:“此外,文字'null','true'和'false' **不能用作ECMAScript中的标识符**。“没有“未定义”的规定。我不知道你想要什么,除了Eich带有蜡封的信,也许这比官方更官方? – tadman

相关问题