[ Javascript ] Boolean 型と Boolean オブジェクトの違い

Pocket

ここでは、Boolean 型と Boolean オブジェクトの違いについて比較するサンプルスクリプトを掲載しています。

スポンサーリンク

Boolean 型と Boolean オブジェクト

両者を比較するサンプルスクリプトになります。詳細はサンプル内のコメントを参照ください。

var str = "あいうえお";

/*
 * Boolean関数を使用して変数b1に真偽値を入れる。
 * 関数として使用することでプリミティブな真偽値に変換することができる。
 */
var b1 = Boolean(str);

alert(b1);        // true
alert(typeof b1); // boolean

/*
 * !!(びっくりマーク2つ)でstrを真偽値に変換する。(上記と同様の操作)
 * 2回否定を繰り返して元に戻るわけではない。
 */
var b2 = !!str;
alert(b2);        // true
alert(typeof b2); // boolean

/*
 * Booleanオブジェクトのインスタンスを生成する
 */
var b3 = new Boolean(str);

alert(b3);        // true
alert(typeof b3); // object

/*
 * b1 と b2 はともにプリミティブな真偽値なので型も一致する
 */
alert(b1 === b2) // true

/*
 * b1 と b3 は型がbooleanとobjectで異なるため一致しない
 */
alert(b1 === b3) // false

/*
 * 型は違うが、== で比較すると一致すると判断される。
 * プリミティブな値とオブジェクトの比較であるが、不具合の原因となる
 * 可能性があるので、推奨されない。javascriptに限った話でもない。
 */
alert(b1 == b3)  // true
参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *