JavaScript | 変数の値が未定義値(undefined)か判定する

JavaScript
スポンサーリンク

では、JavaScriptの 「undefined」 の概念と判定方法を、プログラミング初心者向けにわかりやすく、例を交えて解説します。


1. 変数を作っただけの状態は「undefined」

JavaScriptでは、変数を宣言しても値を入れない場合、その変数には自動的に undefined という特別な値が入ります。

let age;
console.log(age); // undefined
JavaScript

ここでのポイント:

  • age はまだ値を持っていません。
  • JavaScriptは「この変数にはまだ値が入っていないよ」と示すために undefined をセットします。
  • undefined は「何も入っていない」という意味です。

💡 初心者向けのイメージ:

「まだ空っぽの箱」にラベルとして undefined が貼られている状態。


2. undefined と文字列 ‘undefined’ は違う

間違いやすいポイントとして、文字列 'undefined' と JavaScriptの undefined別物 です。

let age;

if (age === 'undefined') {
  console.log('文字列のundefinedです');
} else {
  console.log('JavaScriptのundefinedです');
}
// 出力: JavaScriptのundefinedです
JavaScript

ポイント:

  • シングルクォート ' ' があると文字列扱いになる。
  • 文字列 'undefined' と JavaScriptの undefinedまったく別のもの です。

3. undefinedかどうかを確認する方法

方法①: 直接 undefined と比較する

let score;

if (score === undefined) {
  console.log('scoreはまだ値が入っていません');
} else {
  console.log('scoreは値が入っています');
}
// 出力: scoreはまだ値が入っていません
JavaScript
  • === を使って、変数が本当に undefined かどうかを確認します。

方法②: typeof 演算子を使う

typeof 演算子を使うと、変数の種類(型)を文字列で調べられます。

let score;

if (typeof score === 'undefined') {
  console.log('scoreはまだ値が入っていません');
} else {
  console.log('scoreは値が入っています');
}
// 出力: scoreはまだ値が入っていません
JavaScript

💡 typeof のポイント:

  • typeof を使うと、変数が存在しない場合でもエラーにならない。
  • 安全に undefined 判定ができる方法です。

4. 例題で練習

例題①

let name;
console.log(name); // ここに何が出る?
JavaScript

答え: undefined
解説: name はまだ値が入っていないので、JavaScriptが自動で undefined を入れます。


例題②

let x = 10;
if (x === undefined) {
  console.log('xは未定義');
} else {
  console.log('xには値があります');
}
JavaScript

答え: xには値があります
解説: xには 10 が入っているので、undefined ではありません。


例題③

let y;
if (typeof y === 'undefined') {
  console.log('yはまだ値が入っていません');
} else {
  console.log('yには値が入っています');
}
JavaScript

答え: yはまだ値が入っていません
解説: typeof を使うと、安全に undefined を確認できます。


まとめ

  • 変数を宣言しただけの状態 → undefined
  • 'undefined'(文字列)とは違う
  • 判定方法:
    1. === undefined で比較
    2. typeof 変数 === 'undefined' で確認
  • typeof は安全に確認できるので、初心者はまずこれを覚えると安心

💡 覚え方のイメージ

「まだ箱に何も入っていない → undefined」
「中に何か入っている → 値がある」

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