什么是'true'和'false'和'null'
What are 'true' and 'false' and 'null'?
为什么它们不是关键字?它们是什么?
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
Mozilla文档
此外,文本null、true和false保留在ECMAScript以供其正常使用。
实际上,它们看起来确实是"保留"使用的,但我不知道为什么它们没有被列为保留词。
使用非对象javascript只需编写
if( sami.value = true) //Noticed i didn't put ==
如果是对象布尔对象表示两个值:"true"或"false"。
以下代码创建一个名为myBoolean的布尔对象:
var myBoolean=new Boolean();
如果布尔对象没有初始值,或者传递的值是以下值之一:
0
-0
null
""
false
undefined
NaN
对象被设置为false。对于任何其他值,它都设置为true(即使使用字符串"false")!
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 数组在递归方法中设置为null
- 如何将localStorage值设置为false
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 无法获取属性'selectedIndex'的未定义引用或null引用
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 什么是'true'和'false'和'null'
- marker.setVisible(false) 和 marker.setMap(null) 不适用于所有标记
- setVisible(false)删除标记,但不删除setMap(null)
- 在MongoDB中输入用户名数组,并返回相同大小的id数组,对于不存在的用户名为null或false
- jQuery - execCommand(“insertUnorderedList”, false, null);- 与
- 在ClojureScript core.match中匹配false(==未定义,null)
- 用默认参数解构false和null
- 如何在数组 (JS) 中过滤掉 NaN、null、0、false
- 从html表单中提取带有值和id的UI元素,忽略null元素和FALSE复选框
- JavaScript检查value是否只有undefined、null或false
- js条件:如果不是false、null或undefined,那么
- 复选框ng将false值设为null
- 为什么null == 0输出false,因为两者都是假值