0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaScriptのtrueとfalse、undefined、nullの疑問まとめ

Last updated at Posted at 2023-10-26

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のケースなら早期リターンされるからここは表示されない')
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?