モダンJavaScriptにおける型チェックのベストプラクティス
JavaScript、jQuery、Typesにおける型がBooleanかどうかを確認する方法
typeof
演算子を使用して、変数の型を取得できます。
const isBoolean = typeof value === "boolean";
instanceof
演算子を使用して、変数がBoolean
オブジェクトかどうかを確認できます。
const isBoolean = value instanceof Boolean;
厳格等価演算子===
を使用して、変数がtrue
またはfalse
のいずれかであるかどうかを確認できます。
const isBoolean = value === true || value === false;
jQuery
jQueryを使用している場合は、$.isBoolean()
関数を使用して、変数がBoolean型かどうかを確認できます。
const isBoolean = $.isBoolean(value);
Types
const isBoolean = typeof value === "boolean" && isBoolean(value);
例
const value1 = true;
const value2 = "true";
const value3 = 1;
console.log(typeof value1 === "boolean"); // true
console.log(value1 instanceof Boolean); // true
console.log(value1 === true || value1 === false); // true
console.log(typeof value2 === "boolean"); // false
console.log(value2 instanceof Boolean); // false
console.log(value2 === true || value2 === false); // false
console.log(typeof value3 === "boolean"); // false
console.log(value3 instanceof Boolean); // false
console.log(value3 === true || value3 === false); // false
// jQuery
console.log($.isBoolean(value1)); // true
console.log($.isBoolean(value2)); // false
console.log($.isBoolean(value3)); // false
// TypeScript
const value4: boolean = true;
console.log(typeof value4 === "boolean" && isBoolean(value4)); // true
注意事項
typeof
演算子は、オブジェクトのリテラル表記で作成されたBooleanオブジェクトもboolean
型と判定します。instanceof
演算子は、Boolean
オブジェクトのサブクラスもtrue
と判定します。
これらの点を考慮して、目的に合った方法を選択する必要があります。
JavaScript
// typeof演算子
const value1 = true;
const isBoolean1 = typeof value1 === "boolean";
console.log(isBoolean1); // true
// instanceof演算子
const value2 = new Boolean(true);
const isBoolean2 = value2 instanceof Boolean;
console.log(isBoolean2); // true
// 厳格等価演算子
const value3 = "true";
const isBoolean3 = value3 === true || value3 === false;
console.log(isBoolean3); // false
// jQuery
const value4 = "true";
const isBoolean4 = $.isBoolean(value4);
console.log(isBoolean4); // false
// TypeScript
const value5: boolean = true;
const isBoolean5 = typeof value5 === "boolean" && isBoolean(value5);
console.log(isBoolean5); // true
出力例
true
true
false
false
true
説明
value1
はtrue
というリテラル値で、typeof
演算子によってboolean
型であることが確認できます。value2
はnew Boolean(true)
によって作成されたBooleanオブジェクトで、instanceof
演算子によってBoolean
型であることが確認できます。value3
は文字列"true"で、厳格等価演算子によってtrue
またはfalse
のいずれでもないことが確認できます。value4
は文字列"true"で、$.isBoolean()
関数によってboolean
型ではないことが確認できます。value5
はboolean
型に宣言された変数で、typeof
演算子とisBoolean
型ガードによってboolean
型であることが確認できます。
型がBooleanかどうかを確認するその他の方法
Boolean()
コンストラクタを使用して、値をBoolean型に変換し、その結果を確認できます。
const value = "true";
const isBoolean = Boolean(value) === true;
console.log(isBoolean); // true
論理否定演算子!
を使用して、値がfalse
に変換されるかどうかを確認できます。
const value = 0;
const isBoolean = !value;
console.log(isBoolean); // true
.toString()
メソッドを使用して、値の文字列表現を取得し、それが"true"
または"false"
のいずれかであるかどうかを確認できます。
const value = 1;
const isBoolean = value.toString() === "true" || value.toString() === "false";
console.log(isBoolean); // false
const value = new Boolean(true);
const isBoolean = value.valueOf() === true;
console.log(isBoolean); // true
これらの方法は、typeof
演算子やinstanceof
演算子よりも冗長な場合があり、パフォーマンスの低下につながる可能性があります。
javascript jquery types