元々、js のブール変換は Java のそれと同じだと思っていました。結局、私たちは同じ祖先を持っています。
function foo() {
var temp = Boolean.valueOf('');
alert(temp == false);
java 変数 javaBoolean は文字列です。値は「false」です。当初は true が出力されると思っていましたが、結果は false で、非常にイライラします。
今『The Definitive Guide to JavaScript』をチェックしていて、ふと思いつきました。次のようになります。
他の型を Boolean に変換したい場合は、Boolean(value) または new Boolean(value) を使用する必要があります。 Boolean.valueOf() メソッドはオブジェクトに固有のものであり、 Boolean メソッドの静的メソッドには、もう 1 つの重要な点があります。0、NaN、null、空の文字列、未定義は false に変換され、false を除く他のプリミティブ値 (ただし文字列「false」を含む) も変換されます。オブジェクトと配列が変換されるのは true です。
これを見たら、js に騙される価値があると思うはずですよね?