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

时间:2012-09-05 20:05:46

标签: javascript keyword

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

true, false, null

更新快速回答

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

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

4 个答案:

答案 0 :(得分:11)

它们是布尔文字。来自specification

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不会出现在此列表中。

我认为您的困惑来自于没有意识到关键字保留字这两个术语不相同。每个关键字都是保留字,但并非每个保留字都是关键字。

答案 1 :(得分: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

并在

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

你可以阅读:

Boolean Literals

Syntax
    BooleanLiteral ::
        true
        false

答案 2 :(得分:4)

Mozilla Documentation

  

此外,还保留了文字null,true和false   ECMAScript正常使用。

它们实际上似乎是“保留”用于使用,但我不知道为什么它们不被列为保留字。

答案 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”)!