JavaScriptの空の値 〜nullとundefinedを整理する〜

JavaScript学習ガイド

今回は、JavaScriptを学ぶうえで必ず出会う
とても大切なテーマを整理していきます。

それが、「null」と「undefined」

どちらも「値がない」状態を表しますが、
実はこの2つ、意味はまったく同じではありません。

この違いを曖昧にしたまま進んでしまうと、
思わぬエラーに悩まされることもあります💦

今のうちに、しっかり土台を整えていきましょう!

undefined とは何か?

undefined は、「まだ値が入っていない」状態 を表します。

たとえば、変数を用意しただけで
中身を入れていない場合。

let value;console.log(value); // undefined

箱(変数)は用意した。
でも中身はまだ決まっていない。

そんなとき、JavaScriptが自動的に undefined を入れてくれます。

つまり undefined は、

私たちが積極的に使うというよりも、
JavaScript側が知らせてくれる状態 なのです。

undefined にアクセスするとどうなる?

ここで注意が必要です!

undefined そのものを表示するのは問題ありません。

しかし、
undefined の中身にさらにアクセスしようとするとエラーになります。

let value;console.log(value.name);

このように値を取り出そうとすると、

Uncaught TypeError: Cannot read properties of undefined

というエラーが出ます。

これは、
「まだ何も入っていないのに、その中を見ようとしていますよ」
とJavaScriptが教えてくれている状態です。

初心者がよく出会うエラーのひとつなので、
この感覚は早めに慣れておきましょう!

null とは何か?

一方で null は、「意図的に空にしている」状態 を表します。

let value = null;console.log(value); // null

これは、
「この箱の中身は、今はあえて空にしています」
という、開発者の意思表示です。

たとえば、

・プロフィールの自己紹介がまだ未入力
・選択中のユーザーがまだ決まっていない

こういった状態を明示したいときに null を使います。

つまり、

  • undefined → 自然に発生する「未定義」
  • null → 意図して作る「空」

という違いがあります。

なぜ「空」が2種類あるの?

ここが一番混乱しやすいポイントです。
でも役割で考えると、とてもシンプルなのです。

  • undefined
    「まだ準備ができていない」
    「探したけど見つからなかった」
    といった、プログラム上の状態。
  • null
    「今は空です」ということを、
    データとして明示したいときの値。

この違いを意識できるようになると、
コードの読みやすさが一段階上がります!

比較するときの注意点

JavaScriptには、

  • ==(緩い比較)
  • ===(厳密な比較)

があります。

const a = null;
const b = undefined;console.log(a == b); // true
console.log(a === b); // false

== を使うと、
null と undefined は「同じような空」として扱われ、


=== を使うと、
値だけでなく、型まで含めて完全に同じかどうかを確認します。

バグを防ぐためにも、
比較するときは === を使う習慣をつける
これがとても大切です!

まとめ

ここまで、null と undefined の違いを整理してきました。

一見似ている2つの値ですが、
意味を正しく理解しているかどうかで、エラーへの強さが大きく変わります!

\\ 今回のまとめ //

undefined は「まだ値が入っていない」状態
null は「あえて空にしている」状態
・ undefined の中身にアクセスするとエラーになる
・ 比較するときは === を使うのがおすすめ

どちらも「空」ですが、
意味はまったく同じではありません!

この違いを理解できると、
エラーの原因を冷静に見つけられるようになります。
小さな違いのように見えますが、ここはとても大事な土台なのです。

次は、これらの値を使いながら処理を分けていく
「条件分岐(if文)」 を見ていきましょう!


コメント

タイトルとURLをコピーしました