JS の null, undefined と Python の None の違い

コーディング基礎

日付:2025年2月18日

JavaScript の null, undefined と Python の None の違いについて、それぞれの意味や使い方、挙動の違いを詳しく解説します。

目 次

はじめに

JavaScript には nullundefined という 値が存在しない状態を表す 2 つの異なる型があり、Python には同様の意味を持つ None というオブジェクトがあります。

本記事では、それぞれの違いや用途、使い分けについて詳しく解説します。

1. JavaScript の null と undefined

1.1 undefined とは?

undefined変数が宣言されたが値が設定されていない場合 に自動的に割り当てられる値です。

JAVASCRIPT
let a; console.log(a); // undefined

特徴

  • 変数が宣言されたが値が代入されていないと undefined になる。
  • 関数の戻り値が明示的に return されない場合も undefined になる。
  • 存在しないオブジェクトのプロパティにアクセスすると undefined になる。
JAVASCRIPT
function example() {} console.log(example()); // undefined let obj = {}; console.log(obj.missingKey); // undefined

1.2 null とは?

null意図的に「何もない」ことを示す値 であり、明示的に代入されるものです。

JAVASCRIPT
let b = null; console.log(b); // null

特徴

  • null開発者が明示的に「値がない」ことを示すために使う
  • typeof null"object" というバグがある(JavaScript の設計ミス)。
  • undefined とは異なり、null意図的に設定 されたもの。
JAVASCRIPT
console.log(typeof null); // "object" (バグ) console.log(typeof undefined); // "undefined"

2. Python の None

Python には nullundefined はなく、それに相当するものとして None が存在します。

PYTHON
x = None print(x) # None

特徴

  • NonePython における「値が存在しない」ことを示す唯一の値
  • Nonenull と異なり、NoneType 型に属する。
  • 関数の戻り値が return されない場合、暗黙的に None を返す。
PYTHON
def example(): pass print(example()) # None
  • None はオブジェクトなので、is を使って比較するのが推奨される。
PYTHON
if x is None: print("x は None です")

3. null, undefined, None の違いまとめ

比較項目undefined (JS)null (JS)None (Python)
意味値が未定義値が意図的に空値がないことを表す
データ型undefinedobject(設計ミス)NoneType
比較方法==========is(推奨)
関数の戻り値return なし → undefinedreturn null;nullreturn なし → None
プロパティ存在しないプロパティを読むと undefinednull を代入しない限り null にならない存在しない属性を読むと AttributeError

4. 使い分けのポイント

JavaScript の場合

  • 変数を初期化せずに宣言すると undefined になる。
  • 何もないことを 明示的に示したい場合は null を代入する
  • typeof null のバグに注意し、適切に null === null で比較する。

Python の場合

  • None「値がない」ことを示す唯一の値
  • None を比較するには is None を使う。
  • None は引数のデフォルト値としてもよく使われる。
PYTHON
def greet(name=None): if name is None: return "Hello, Guest!" return f"Hello, {name}!" print(greet()) # "Hello, Guest!" print(greet("Alice")) # "Hello, Alice!"

5. まとめ

JavaScript の nullundefined

  • undefined変数が未定義のときに自動的に割り当てられる値
  • null意図的に「値がない」と設定するときに使う
  • typeof null"object" になるというバグがある。

Python の None

  • NonePython における「値がない」ことを示す唯一の値
  • None を比較するときは is None を使う。
  • None は関数のデフォルト引数としてもよく使われる。

JavaScript と Python では「値がない」ことを表す方法が異なるため、それぞれの特性を理解し、適切に nullundefinedNone を使い分けましょう。

シリーズ一覧コーディング基礎
4
タイトルリンク
第 1 回リストとセットの違い詳 細
第 2 回JSとPythonにおけるforループ詳 細
第 3 回JS と Python における return の基礎詳 細
第 4 回JS の null, undefined と Python の None の違いこの記事