コンテンツにスキップ

JavaScript null値の数値比較

MDNの解説によると、null値はnullというリテラル(数値や文字列を記述した定数)である

null値を変数に代入すると、存在はするが値は空ではないオブジェクトという位置付けになる

typeof null          // "object" (歴史的な理由で "null" ではありません)
typeof undefined     // "undefined"
null === undefined   // false
null  == undefined   // true
null === null        // true
null  == null        // true
!null                // true
isNaN(1 + null)      // false
isNaN(1 + undefined) // true

nullを数値と比較

null値と数値を比較すると、trueを返す場合がある

数値と比較する可能性のある変数にnull値を入れると、バグの原因になるので注意した方が良い

console.log("null > 0", null > 0);   // false
console.log("null >= 0", null >= 0); // true
console.log("null < 0", null < 0);   // false
console.log("null <= 0", null <= 0); // true

console.log("null > 1", null > 1);   // false
console.log("null >= 1", null >= 1); // false
console.log("null < 1", null < 1);   // true
console.log("null <= 1", null <= 1); // true

Reference