首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是“真”、“假”和“空”?

什么是“真”、“假”和“空”?
EN

Stack Overflow用户
提问于 2012-09-05 20:05:45
回答 4查看 2.2K关注 0票数 2

为什么它们不是关键词?他们是什么?

代码语言:javascript
复制
true, false, null

更新快速答案

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

spec - ES3和ES5验证了小的技术区别

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-05 20:18:16

实际上,truefalse是Javascript中的保留词,来自:

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

代码语言:javascript
复制
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

你可以读到:

代码语言:javascript
复制
Boolean Literals

Syntax
    BooleanLiteral ::
        true
        false
票数 5
EN

Stack Overflow用户

发布于 2012-09-05 20:08:16

它们是布尔文字。来自规格说明

BooleanLiteral ::真假

  • 布尔文本true的值是布尔类型的值,即true
  • 布尔文本false的值是布尔类型的值,即false

它类似于10是数字文字或'foo'是字符串文字。

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

代码语言:javascript
复制
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没有出现在这个列表中。

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

票数 11
EN

Stack Overflow用户

发布于 2012-09-05 20:08:49

Mozilla文档

此外,在ECMAScript中保留文字null、true和false以供其正常使用。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12288945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档