Javascript 什么是';正确';和';假';和';空';?

Javascript 什么是';正确';和';假';和';空';?,javascript,keyword,Javascript,Keyword,为什么它们不是关键词?它们是什么 true, false, null 更新快速答案 这些是保留字,但不是关键字 由spec-ES3和ES5验证的小技术区别它们是布尔文本。从: 布尔文本true的值是布尔类型的值,即true 布尔文本false的值是布尔类型的值,即false 它类似于10是数字文字或'foo'是字符串文字 保留字包括关键字和文字。单词true和false是保留字,但它们不是关键字。以下是关键词: 请注意,true和false不会出现在此列表中 我想你的困惑是因为没有意识到关

为什么它们不是关键词?它们是什么

true, false, null
更新快速答案

这些是保留字,但不是关键字

由spec-ES3和ES5验证的小技术区别它们是布尔文本。从:

  • 布尔文本
    true
    的值是布尔类型的值,即
    true
  • 布尔文本
    false
    的值是布尔类型的值,即
    false
它类似于
10
是数字文字或
'foo'
是字符串文字

保留字包括关键字和文字。单词
true
false
是保留字,但它们不是关键字。以下是关键词:

请注意,
true
false
不会出现在此列表中

我想你的困惑是因为没有意识到关键字和保留字这两个词是不一样的。每个关键字都是保留字,但不是每个保留字都是关键字。

此外,文本null、true和false保留在中 ECMAScript以供其正常使用


它们实际上看起来是“保留”的,以供使用,但我不知道为什么它们没有列为保留字。

使用非对象javascript,您只需编写

if( sami.value = true) //Noticed i didn't put ==
如果是对象 布尔对象表示两个值:“真”或“假”

以下代码创建一个名为myBoolean的布尔对象:

var myBoolean=new Boolean();
如果布尔对象没有初始值,或者如果传递的值是以下值之一:

0
-0
null
""
false
undefined
NaN

对象被设置为false。对于任何其他值,它都设置为true(即使使用字符串“false”)

实际上
true
false
是Javascript中的保留字,来自:

保留字是不能用作标识符的标识符名称。
语法
保留字::
关键词
未来保留地
空文字
布尔文字
而且

你可以阅读:

布尔文本
语法
BooleanLiteral::
真的
假的

是什么让你说它们不是保留字
true=6
永远不会起作用,这让它成为一个保留字。对不起……它们不是关键词。我想你误解了这个问题。你还应该正确地格式化你的答案,将code标记为code/等等,这样大家都可以很容易地阅读。谢谢你,我不知道我真的知道这里:PYea,我不知道为什么它没有列在保留字列表中,我只是链接到文本,声明它们是保留用于文字用途的;它们只是带有特殊名称的值。请注意,
undefined
null
也不在MDN的列表中。@Hiro:事实是,42也应该在列表中吗?数字也是文字,并且具有同样有效的大小写。事实上,一些文字是用字母而不是数字拼写的,这并不能改变它们是文字,而不是关键字。我不定义“保留字”是ES5做什么的。有两个不同的概念你不想混淆…一个关键字和一个保留字…pqnet有链接到ES5中定义它的地方。@Hiro:我有一个ECMA-262的副本(它以PDF格式免费提供),所以我可以随时方便地查找类似的内容:)@Hiro,这很不幸。也就是说,您可以放心,Javascript实现人员会遵守规范,而不是好的部分,因为它们可能会很有启发性。您忘记了:浏览器实现liesECMA-262是标准。如果这是谎言,你就完蛋了。我想我将从这里阅读规范,并做出我自己的解释。
var myBoolean=new Boolean();
0
-0
null
""
false
undefined
NaN