1

重複の可能性:
JavaScript で !new Boolean(false) が false に等しいのはなぜですか?

var b = new Boolean(null);


alert(b instanceof Boolean);

 if(b) {
    alert('cv');
    alert(b.toString());
 }

コードブロックが実行されるのはなぜですか? b はブール型であるはずで、false と評価されますか?

説明してくださいありがとう

4

2 に答える 2

2

オブジェクトが存在し、現在値がありませんが未定義ではないため、コード ブロックが実行されます。JavaScript のブール オブジェクトのポイントは、非ブール オブジェクトを「true」または「false」の値に変換することです。

あなたが持っている場合

if( b.valueOf() );

オブジェクトの実際の値を評価します。

于 2013-01-11T22:35:36.740 に答える
1

を除くすべてobjectの は truenullです。したがって、new Boolean(false)具体的に書いても真実になります。

これが、決して書かない理由ですnew Boolean。ブール値にキャストするには、使用するだけです!!

于 2013-01-11T22:32:29.357 に答える