为什么它们不是关键字?这些是什么?
true, false, null
更新快速回答
这些是保留字,但它们不是关键字。
由规范验证的小技术区别 - ES3 和 ES5
为什么它们不是关键字?这些是什么?
true, false, null
更新快速回答
这些是保留字,但它们不是关键字。
由规范验证的小技术区别 - ES3 和 ES5
它们是布尔文字。从规范:
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
不会出现在此列表中。
我认为您的困惑来自于没有意识到这两个术语关键字和保留字是不一样的。每个关键字都是保留字,但并非每个保留字都是关键字。
实际上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
使用非对象 javascript,您只需编写
if( sami.value = true) //Noticed i didn't put ==
如果是 object 布尔对象代表两个值:“true”或“false”。
以下代码创建一个名为 myBoolean 的布尔对象:
var myBoolean=new Boolean();
如果布尔对象没有初始值,或者传递的值是以下之一:
0
-0
null
""
false
undefined
NaN
对象设置为假。对于任何其他值,它都设置为 true(即使使用字符串“false”)!