JavaScriptを学び始めると、必ず出てくるのが「undefined」と「null」という2つの特殊な値です。どちらも「値が存在しない」ことを表しますが、意味や使われ方には明確な違いがあります。
1. undefinedとは
**undefined(アンディファインド)**は、
「まだ値が定義されていない」状態を意味します。
JavaScriptでは、変数を宣言しただけで値を代入していないと、自動的にundefinedが入ります。
つまり「システム側で自動的に設定される“未定義”状態」です。
たとえば:
宣言だけして代入していない変数
存在しないオブジェクトのプロパティ
何も返さない関数の戻り値
これらにアクセスしたときにundefinedになります。
2. nullとは
**null(ヌル)**は、
「値がないことを意図的に示す」ための値です。
つまり、開発者が「ここには何も入っていません」ということを明確に表すために使います。
プログラムの流れの中で「まだ値を取得していないけど、後で入る予定」という場合などに便利です。
3. 簡単に言うと
状態 意味 誰が設定するか
undefined 値が“未定義” JavaScriptが自動で設定
null 値が“存在しない”と明示 開発者が意図的に設定
4. 実務での使い分け
undefinedは「何も代入していない」状態を確認するために使う。
→ 例:「このデータまだ来てないな」とチェックする。
nullは「値をリセットしたい」「空っぽにしたい」ときに自分で代入する。
→ 例:「ログアウトしたらユーザー情報をnullに戻す」。
5. まとめ
undefined → システムが付ける「未定義」
null → 開発者が付ける「空っぽ」
どちらも“空”を表すが、意味と意図が異なる
つまり、
「まだ何も決まっていない」はundefined、
「明確に空にしておく」はnull、
と覚えると整理しやすいです。