0
JavaScriptでなぜ行番号[].every(Boolean)
が返されますtrue
?そして[].some(Boolean)
はfalse
を返しますか?空配列の `every`メソッドと` some`メソッドを呼び出すと、奇妙な結果が返されます
配列に要素がない場合、それらは未定義(宣言されていない)なので偽です。これによると、配列[null]
または[undefined]
のスニペットは、正確に予測通りにfalse
を返します。
空の配列は、最初にコールバックBoolean
を呼び出してはならず、undefined
またはnull
などのように返します。したがって、false
を再度返してください。
私が見逃したことはありますか?
JSインタプリタが本当にやっているのは、Boolean([])
(最初の状況)です。もちろん、それはtrue
を返します。多分それは正しいですか?
技術的な回答ではありませんが、[vacous truth](https://en.wikipedia.org/wiki/Vacuous_truth)の数学的な概念に興味があるかもしれません。 – apsillers