布爾(Booleans)

2018-06-15 17:38 更新

布爾類型原始值包括truefalse。下面的操作符產(chǎn)生布爾值:

  • 二元邏輯運(yùn)算符:&&(與),(或)
  • 前綴邏輯運(yùn)算符:!(非)
  • 等值運(yùn)算符:=== !== == !=
  • 比較運(yùn)算符(字符串或數(shù)字):> >= < <=

真值和假值(Truthy and falsy)

每當(dāng)JavaScript希望一個(gè)布爾值時(shí)(例如:if語句的條件),可以使用任何值。它將被理解(轉(zhuǎn)換)為truefalse。下面的值被理解為false

  • undefined, null
  • 布爾: false
  • 數(shù)字: -0, NaN
  • 字符串: ‘’

所有其他值被認(rèn)為true。被理解為false的值稱為假值(falsy),被理解為true的值稱為真值(truthy)??梢允褂肂oolean作為函數(shù),測試值被理解為什么。

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

二元邏輯運(yùn)算符(Binary logical operators)

JavaScript中的二元邏輯運(yùn)算符是短路運(yùn)算——如果第一個(gè)操作數(shù)可以確定結(jié)果,第二個(gè)操作數(shù)將不被驗(yàn)證(運(yùn)算)。例如,在下面的代碼中,函數(shù)foo()永遠(yuǎn)不會被調(diào)用。

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

此外,二元邏輯運(yùn)算符會返回操作數(shù)中的一個(gè)——可能是一個(gè)布爾值,也可能不是。一張真值表用來決定返回哪個(gè)值:

  • 與:如果第一個(gè)操作數(shù)是假值,返回第一個(gè)。否則返回第二個(gè)操作數(shù)。
    > NaN && 'abc'
    NaN
    > 123 && 'abc'
    'abc'

  • 或:如果第一個(gè)操作數(shù)是真值,返回第一個(gè)。否則,返回第二個(gè)操作數(shù)。
    > 'abc' || 123
    'abc'
    > '' || 123
    123

等值運(yùn)算符(Equality operators)

在JavaScript中檢測相等,你可以使用嚴(yán)格相等(===)和嚴(yán)格不等(!==)?;蛘吣阋部梢允褂梅菄?yán)格相等(==)和非嚴(yán)格不等(!=)。經(jīng)驗(yàn)規(guī)則:總是用嚴(yán)格運(yùn)算符,假裝非嚴(yán)格運(yùn)算符不存在。嚴(yán)格相等更安全。

深入閱讀

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號