什么是'true'和'false'和'null'

What are 'true' and 'false' and 'null'?

本文关键字:false null true 什么      更新时间:2023-09-26

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

true, false, null

更新快速应答

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

通过规范验证的小型技术差异-ES3和ES5

它们是布尔文字。来自规范:

BooleanLiteral ::
   true
   false
  • 布尔文字true的值是布尔类型的值,即true
  • 布尔文字false的值是布尔类型的值,即false

这类似于10数字文字'foo'字符串文字

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

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

请注意,truefalse未显示在此列表中。

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

实际上truefalse是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")!