boolean相關

async githubgit

What

布爾值,JavaScript 基本數據類型之一。github

JavaScript 基本數據類型:async

  • number 數字this

  • string 字符串code

  • boolean 布爾值ip

  • undefined字符串

  • nullget

  • symbolsstring

  • objectit

值有兩個:true 、 false

Tips

條件判斷

最多用的是在條件判斷(if, ? :, while 等),對非布爾值,解釋引擎會先進行隱式轉換爲布爾值。

對於大部分值在轉換爲布爾值時都是 true, 如下 falsy 值被轉爲false :

  • 空串 ""

  • null

  • undefined

  • 數字 0

  • 數字 NaN

  • 布爾值 false

這些值一般由某些操做返回,如:

  • 邏輯類操做, !&&||

  • 比較類操做,===!=> and so on

  • 能夠轉換爲布爾類型的值或變量

經常使用小技巧:

  • !!
    !! 轉成 boolean

let stringTest = 'this is a string';

true === !!stringTest // true

一些容易出錯的點

null == undefined   // true

null === undefined  // false

NaN == NaN  // false

惰性求值

有兩個小技巧:

  • ||

let stringTest = 'this is a test';

// 已經定義, 保留原有值
let testA = stringTest || 'default';

testA   // 'this is a test'
  • &&

let objectTest = {a1: {a2: 'a2'}};

const a2 = objectTest.a1 && objectTest.a1.a2 || 'default';

a2  // 'a2'

在使用上面方式進行賦值或者條件判斷時,務必要考慮 falsy 的狀況。以下面的代碼可能會成爲一個隱患

const warningNumber = 0;

// 數字 0 被當成了 false 處理
const notWant = warningNumber || 10;

notWant;    // 10
相關文章
相關標籤/搜索