簡體   English   中英

JavaScript 中的空數組是否真實?

[英]Empty array is truthy or not in JavaScript?

我對以下結果有點困惑,有人可以指出幕后發生的事情嗎? 為什么 Boolean([]) 會返回 true? 並松散地將空數組與 Boolean [] == false 評估為 true?
但嚴格比較會評估為假?

這是我不明白的部分

非常感謝!

Boolean([])
//true

[] == false
//true

[] === false
//false

可靠檢查的最簡單方法是使用長度屬性。

[].length // 0, falsy

['something'].length // 1. truthy

有關更多信息,請參閱官方規范

Boolean([]) // => true
  • 這里,[](數組是 object 類型)正在轉換為 boolean。 由於[]有參考價值,轉換后為真。

.

[] == false // => false
  • 在這里,相等運算符松散地檢查值。 由於兩邊是不同的類型(對象和布爾值),其中一個是 boolean,所以它將轉換為(0 或 1)並與另一側進行比較。 它將等價於 +[] == +false,即 0 == 0,即為真

查看 MDN 文檔以獲取更多詳細信息

[] === false // => false
  • 在這里,嚴格等式運算符。 將檢查 Type 和 value 由於兩者都是不同的類型,因此它將為 false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM