2017-01-26 15 views
0

JavaScriptでなぜ行番号[].every(Boolean)が返されますtrue?そして[].some(Boolean)falseを返しますか?空配列の `every`メソッドと` some`メソッドを呼び出すと、奇妙な結果が返されます

配列に要素がない場合、それらは未定義(宣言されていない)なので偽です。これによると、配列[null]または[undefined]のスニペットは、正確に予測通りにfalseを返します。
空の配列は、最初にコールバックBooleanを呼び出してはならず、undefinedまたはnullなどのように返します。したがって、falseを再度返してください。

私が見逃したことはありますか?

JSインタプリタが本当にやっているのは、Boolean([])(最初の状況)です。もちろん、それはtrueを返します。多分それは正しいですか?

+2

技術的な回答ではありませんが、[vacous truth](https://en.wikipedia.org/wiki/Vacuous_truth)の数学的な概念に興味があるかもしれません。 – apsillers

答えて

0

.everyは自動的にtrueを返し、.someは自動的にfalseを返します。ループするものは何もなく、デフォルトの回答を使用します。

関連する問題