我知道這個問題的答案是它在規範中,但背後的邏輯(如果有的話)是什麼?
Welcome to Node.js v19.0.0. Type ".help" for more information. > !!'' false > !![] true
String,據我了解,實際上是一個數組,添加了一些額外的功能,以使文字更易於使用,但它仍然可以執行所有類似數組的操作,所以為什麼是一個空字串falsey 但空數組是truthy?
String
falsey
truthy
讓我們簡單一點:
!!''
JavaScript 中的空字串被視為「假」值。在布林上下文中求值時,它被視為布林 false。
!![]
數組,無論是否包含項目,在 Javascript 中都被視為「真實」值。在布林上下文中求值時,它們被視為布林 true。
讓我們簡單一點:
JavaScript 中的空字串被視為「假」值。在布林上下文中求值時,它被視為布林 false。
數組,無論是否包含項目,在 Javascript 中都被視為「真實」值。在布林上下文中求值時,它們被視為布林 true。