布尔(Booleans)

2018-06-15 17:38 更新

布尔类型原始值包括truefalse。下面的操作符产生布尔值:

  • 二元逻辑运算符:&&(与)(或)
  • 前缀逻辑运算符:!(非)
  • 等值运算符:=== !== == !=
  • 比较运算符(字符串或数字):> >= < <=

真值和假值(Truthy and falsy)

每当JavaScript希望一个布尔值时(例如:if语句的条件),可以使用任何值。它将被理解(转换)为truefalse。下面的值被理解为false

  • undefined, null
  • 布尔: false
  • 数字: -0, NaN
  • 字符串: ‘’

所有其他值被认为true。被理解为false的值称为假值(falsy),被理解为true的值称为真值(truthy)。可以使用Boolean作为函数,测试值被理解为什么。

> Boolean(undefined)
  false
> Boolean(0)
  false
> Boolean(3)
  true

二元逻辑运算符(Binary logical operators)

JavaScript中的二元逻辑运算符是短路运算——如果第一个操作数可以确定结果,第二个操作数将不被验证(运算)。例如,在下面的代码中,函数foo()永远不会被调用。

false && foo()
true  || foo()

此外,二元逻辑运算符会返回操作数中的一个——可能是一个布尔值,也可能不是。一张真值表用来决定返回哪个值:

  • 与:如果第一个操作数是假值,返回第一个。否则返回第二个操作数。
    > NaN && 'abc'
    NaN
    > 123 && 'abc'
    'abc'

  • 或:如果第一个操作数是真值,返回第一个。否则,返回第二个操作数。
    > 'abc' || 123
    'abc'
    > '' || 123
    123

等值运算符(Equality operators)

在JavaScript中检测相等,你可以使用严格相等(===)和严格不等(!==)。或者你也可以使用非严格相等(==)和非严格不等(!=)。经验规则:总是用严格运算符,假装非严格运算符不存在。严格相等更安全。

深入阅读

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号