【JS】falsy與truthy

1.Falsy值,當進行邏輯判斷時均爲false(如!!false==false)。六個Falsy值:false、undefined、null、正負0、NaN、""。git

2.其他全部的值均爲Truthy,當進行邏輯判斷時均爲true(如!![]==true)。Infinity、空數組、」0″都是Truthy值。github

MDN非假值文檔數組

轉載2個有趣的例子,點擊標題查看詳細:
一,[] == ![] //true
解析:code

  1. 等號右邊有 ! ,優先級比 == 更高,優先計算右邊的結果。 [] 爲非假值,因此右邊的運算結果爲 false。文檔

![] ==> false
  1. == 的任意一邊有 boolean 類型的值時先把這個值轉換成 number 類型,右邊轉換成了 0。字符串

Number(false) ==> 0
  1. == 的兩邊分別是 number 和 object 類型的值時,把 object 轉換成 number 類型,須要對 object 進行 ToNumber 操做。get

Number([].valueOf()) ==> 0

二,++[[]][+[]]+[+[]]//"10"
解析:
1.++[[]][+[]]+[+[]]==>string

++[[]][+[]]
+
[+[]]

2.由於+[] === 0,因此原式==>it

++[[]][0]
+
[0]

3.由於 [[]][0] 的意思是:獲取 [[]] 的第一個元素,返回[[]]的第一個數組[],原式==>io

1
+
[0]

4.當數組只有一個元素時,返回結果就是它自身的第一個元素,原式==>

1+"0"==>"10"//字符串
相關文章
相關標籤/搜索