什么是'真实','假'和'空'?

2 javascript keyword

他们为什么不是关键词?这些是什么?

true, false, null
Run Code Online (Sandbox Code Playgroud)

更新快速解答

这些是保留字,但它们不是关键字.

通过规范验证的小技术区别 - ES3和ES5

Mar*_*ers 11

它们是布尔文字.从规格:

BooleanLiteral ::
   true
   false
Run Code Online (Sandbox Code Playgroud)
  • 布尔文字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
Run Code Online (Sandbox Code Playgroud)

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

我认为你的困惑来自于没有意识到两个术语关键词保留词是不一样的.每个关键字都是保留字,但并非每个保留字都是关键字.


pqn*_*net 5

其实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
Run Code Online (Sandbox Code Playgroud)

并在

http://ecma-international.org/ecma-262/5.1/#sec-7.8.2

你可以阅读:

Boolean Literals

Syntax
    BooleanLiteral ::
        true
        false
Run Code Online (Sandbox Code Playgroud)