素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

空配列の真偽値へのキャストとBoolean

==を使う時はてっきり、Booleanで真偽値にキャストされると思ってたのだけど、違うみたい。

var empty = [];
empty == empty; // true
new Boolean(empty); // new Boolean(true)
Boolean(empty); // true
!!empty; // true
empty == true; // false
Boolean(empty) === Boolean(empty); // true
Boolean(empty) == empty; // false。==はBooleanとは別の規則で比較してる?