重複の可能性:
JavaScript で !new Boolean(false) が false に等しいのはなぜですか?
var b = new Boolean(null);
alert(b instanceof Boolean);
if(b) {
alert('cv');
alert(b.toString());
}
コードブロックが実行されるのはなぜですか? b はブール型であるはずで、false と評価されますか?
説明してくださいありがとう
重複の可能性:
JavaScript で !new Boolean(false) が false に等しいのはなぜですか?
var b = new Boolean(null);
alert(b instanceof Boolean);
if(b) {
alert('cv');
alert(b.toString());
}
コードブロックが実行されるのはなぜですか? b はブール型であるはずで、false と評価されますか?
説明してくださいありがとう
オブジェクトが存在し、現在値がありませんが未定義ではないため、コード ブロックが実行されます。JavaScript のブール オブジェクトのポイントは、非ブール オブジェクトを「true」または「false」の値に変換することです。
あなたが持っている場合
if( b.valueOf() );
オブジェクトの実際の値を評価します。
を除くすべてobject
の は truenull
です。したがって、new Boolean(false)
具体的に書いても真実になります。
これが、決して書かない理由ですnew Boolean
。ブール値にキャストするには、使用するだけです!!