falseとなるケース
false |
---|
0 |
-0 |
0n |
"" (空文字) |
null |
undefined |
NaN |
これ以外は全部 true
JavaScript での undefined と null とは
種別 | 解説 |
---|---|
undefined | 値が代入されていないため、値がない |
null | 代入すべき値が存在しないため、値がない |
結局 undefined と null をどう使い分ける?
- nullは使わずにundefinedを使うようにするのがベター(自分が新たにコードを書く部分は、nullは使わずにundefinedにできるだけ寄せるといったイメージ)
- undefinedは言語仕様上、プログラマーが明示的に使わなくても自然に発生する
- 逆にnullは実装者が明示的に指定しないと発生しない(外部APIやライブラリなどでnullを返すパターンもあるから、そこは注意)
let value
console.log(value) -> undefined
const obj = {}
console.log(obj.foo) -> undefined
const arr = []
console.log(arr[0]) -> undefined
JSON での undefined と null との違い
console.log(JSON.stringify({ foo: undefined }))
-> {}
console.log(JSON.stringify({ foo: null }))
-> {"foo": null}
実装例 : 結果が undefined だったら早期リターンする
const result = undefined
if (typeof result === 'undefined') {
return
}
実装例 : 結果が null だったら早期リターンする
const result = null
if (result === null) {
return
}
自分のブラウザの console で挙動確認してみて
result = undefined
// result = null
// result = ''
// result = 0
result || console.log('resultがfalsyな値なら表示する')
if (typeof result === 'undefined') {
return
} else {
console.log('resultがundefinedのケースなら早期リターンされるからここは表示されない')
}
if (result === null) {
return
} else {
console.log('resultがnullのケースなら早期リターンされるからここは表示されない')
}