JavaScript null と undefined の型について
型変換が行われる場合、null と undefined はどちらも null または undefined のままではなく、特定の文脈に応じて変換されます。以下にいくつかの例を示します。
### 数値型への変換
- null は 0 に変換されます。
- undefined は NaN(Not-a-Number)に変換されます。
例:
`javascript
Number(null); // 0
Number(undefined); // NaN
`
### 文字列型への変換
- null は "null" という文字列に変換されます。
- undefined は "undefined" という文字列に変換されます。
例:
`javascript
String(null); // "null"
String(undefined); // "undefined"
`
### 論理型への変換
- null は false に変換されます。
- undefined は false に変換されます。
例:
`javascript
Boolean(null); // false
Boolean(undefined); // false
`
### 等価比較の際の変換
- null と undefined は == 演算子を使用すると等価とみなされますが、=== 演算子を使用すると異なる型として扱われます。
例:
`javascript
null == undefined; // true
null === undefined; // false
`
### まとめ
型変換が行われると、null と undefined は文脈に応じて適切な型に変換されます。数値型、文字列型、論理型などの変換結果は異なりますが、== 演算子を使用すると等価とみなされる点に注意が必要です。
?? と ||
?? (Nullish Coalescing Operator)
null または undefined の場合にのみ右側の値を返します。
例:
let value = item.score ?? 0 // item.score が null または undefined の場合に 0 を返す
|| (Logical OR Operator)
falsy な値(false, 0, -0, 0n, ""(空文字列), null, undefined, NaN)の場合に右側の値を返します。
例:let value = item.score || 0 // が falsy な値(例: 0, "", null, undefined, NaN)の場合に 0 を返す
を返す