JavaScript の値の等価性
このページは、JavaScript の値の等価性についてまとめる予定のページです。
目次
用語
falsy
if (x)
, x = x || 代替値
などで false
として判定される値のこと (下記の値)。
false
0
,-0
,0n
- 空文字列 (
""
) null
undefined
NaN
nullish
null
, undefined
のこと。x = x ?? 代替値
で false
として判定される値。
等価演算子 (==)
2つの値の型が異なる場合、型変換を行って2つの値が等価かを確認する演算子。
厳密等価演算子 (===)
型変換を行わずに2つの値が等価かを確認する演算子。
等価演算子の例
true になる例
console.log(null == undefined);
console.log('' == 0); // ToNumber('') === 0 -> 0 === 0
console.log('00000' == 0); // ToNumber('00000') === 0 -> 0 === 0
console.log('0e0' == 0); // ToNumber('0e0') === 0 -> 0 === 0
console.log([1,2,3] == '1,2,3'); // ToPrimitive([1,2,3]) == '1,2,3' -> '1,2,3' === '1,2,3'
console.log([] == ''); // ToPrimitive([]) == '' -> '' === ''
false になる例
console.log(2 == true); // 2 === ToNumber(true) -> 2 === 1
値が 0 か '0' のとき true にする
if (x === 0 || x === '0')
console.log('' == 0);
console.log('00000' == 0);
console.log('0e0' == 0);
console.log([] == 0);
console.log([0] == 0);
console.log([0] == '0');
値が空文字列のとき true にする
if (x === '')
console.log(0 == '');
console.log([] == '');
値が null か undefined のとき true にする
「==」を使用する場合
if (x == null)
「===」を使用する場合
if (x === null || typeof x === 'undefined')
- JavaScript では
undefined
という名前の変数に値を代入することができるため、その変数があるケースを避けるためにtypeof
を使用します。
(そのケースを無視してよければx === null || x === undefined
で可) - 参考: undefined - JavaScript | MDN
値が NaN のとき true にする
if (Number.isNaN(x))