为什么不是关键字?它们是什么?
true, false, null
更新快速回答
这些是保留字,但它们不是关键字。
通过规范验证的小技术区别 - ES3和ES5
答案 0 :(得分:11)
它们是布尔文字。来自specification:
BooleanLiteral :: true false
- 布尔文字
true
的值是布尔类型的值,即true
。- 布尔文字
false
的值是布尔类型的值,即false
。
类似于10
数字文字或'foo'
是字符串文字的方式。
保留字包括关键字和文字。单词true
和false
是保留字,但它们不是关键字。以下是关键字:
break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger function this with
default if throw
delete in try
请注意,true
和false
不会出现在此列表中。
我认为您的困惑来自于没有意识到关键字和保留字这两个术语不相同。每个关键字都是保留字,但并非每个保留字都是关键字。
答案 1 :(得分:5)
实际上,true
和false
是Javascript中的保留字,来自:
http://ecma-international.org/ecma-262/5.1/#sec-7.6.1
A reserved word is an IdentifierName that cannot be used as an Identifier.
Syntax
ReservedWord ::
Keyword
FutureReservedWord
NullLiteral
BooleanLiteral
并在
http://ecma-international.org/ecma-262/5.1/#sec-7.8.2
你可以阅读:
Boolean Literals
Syntax
BooleanLiteral ::
true
false
答案 2 :(得分:4)
答案 3 :(得分:1)
使用非对象javascript,您只需编写
if( sami.value = true) //Noticed i didn't put ==
如果是对象 Boolean对象表示两个值:“true”或“false”。
以下代码创建一个名为myBoolean的布尔对象:
var myBoolean=new Boolean();
如果Boolean对象没有初始值,或者传递的值是以下值之一:
0
-0
null
""
false
undefined
NaN
该对象设置为false。对于任何其他值,它设置为true(即使字符串为“false”)!