真の場合。偽の場合は、!== を使う。
プリミティブ値の判定
文字列の判定
if (typeof a === 'string') {}
数値の判定
if (typeof a === 'number') {}
ブーリアンの判定
if (typeof a === 'boolean' && value) {}
undefinedの判定
if (typeof a === 'undefined') {}
nullとの比較
typeof null を実行すると「object」が返却されるため、typeof でnullをテストするのは効率が悪い。そこで、=== や !== を使う。
if (a !== null) {}
参照値の判定
// Dateの判定
if (a instanceof Date) {}
// RegExpの判定
if (a instanceof RegExp) {}
// Errorの判定
if (a instanceof Error) {}
// 関数の判定
if (a instanceof Function) {}
// 配列の判定
if (Object.prototype.toString.call(a) === '[object Array]') {}
// 配列の判定
if (Array.isArray(a)) {}
プロパティの判定
// Good
if ("propertyName" in object) {}
// Good
if (object.hasOwnProperty("propertyName")) {}
// Bad: 偽値チェック
if (object[propertyName]) {}
// Bad: nullと比較
if (object[propertyName] != null) {}
// Bad: undefinedと比較
if (object[propertyName] != undefined) {}