JavaScript の null, undefined と Python の None の違いについて、それぞれの意味や使い方、挙動の違いを詳しく解説します。
JavaScript には null
と undefined
という 値が存在しない状態を表す 2 つの異なる型があり、Python には同様の意味を持つ None
というオブジェクトがあります。
本記事では、それぞれの違いや用途、使い分けについて詳しく解説します。
undefined
は 変数が宣言されたが値が設定されていない場合 に自動的に割り当てられる値です。
JAVASCRIPTlet a; console.log(a); // undefined
✅ 特徴
undefined
になる。return
されない場合も undefined
になる。undefined
になる。JAVASCRIPTfunction example() {} console.log(example()); // undefined let obj = {}; console.log(obj.missingKey); // undefined
null
は 意図的に「何もない」ことを示す値 であり、明示的に代入されるものです。
JAVASCRIPTlet b = null; console.log(b); // null
✅ 特徴
null
は 開発者が明示的に「値がない」ことを示すために使う。typeof null
は "object"
というバグがある(JavaScript の設計ミス)。undefined
とは異なり、null
は 意図的に設定 されたもの。JAVASCRIPTconsole.log(typeof null); // "object" (バグ) console.log(typeof undefined); // "undefined"
Python には null
や undefined
はなく、それに相当するものとして None
が存在します。
PYTHONx = None print(x) # None
✅ 特徴
None
は Python における「値が存在しない」ことを示す唯一の値。None
は null
と異なり、NoneType
型に属する。return
されない場合、暗黙的に None
を返す。PYTHONdef example(): pass print(example()) # None
None
はオブジェクトなので、is
を使って比較するのが推奨される。PYTHONif x is None: print("x は None です")
比較項目 | undefined (JS) | null (JS) | None (Python) |
---|---|---|---|
意味 | 値が未定義 | 値が意図的に空 | 値がないことを表す |
データ型 | undefined | object (設計ミス) | NoneType |
比較方法 | === や == | === や == | is (推奨) |
関数の戻り値 | return なし → undefined | return null; → null | return なし → None |
プロパティ | 存在しないプロパティを読むと undefined | null を代入しない限り null にならない | 存在しない属性を読むと AttributeError |
undefined
になる。null
を代入する。typeof null
のバグに注意し、適切に null === null
で比較する。None
は 「値がない」ことを示す唯一の値。None
を比較するには is None
を使う。None
は引数のデフォルト値としてもよく使われる。PYTHONdef greet(name=None): if name is None: return "Hello, Guest!" return f"Hello, {name}!" print(greet()) # "Hello, Guest!" print(greet("Alice")) # "Hello, Alice!"
✅ JavaScript の null
と undefined
undefined
は 変数が未定義のときに自動的に割り当てられる値。null
は 意図的に「値がない」と設定するときに使う。typeof null
は "object"
になるというバグがある。✅ Python の None
None
は Python における「値がない」ことを示す唯一の値。None
を比較するときは is None
を使う。None
は関数のデフォルト引数としてもよく使われる。JavaScript と Python では「値がない」ことを表す方法が異なるため、それぞれの特性を理解し、適切に null
、undefined
、None
を使い分けましょう。
回 | タイトル | リンク |
---|---|---|
第 1 回 | リストとセットの違い | 詳 細 |
第 2 回 | JSとPythonにおけるforループ | 詳 細 |
第 3 回 | JS と Python における return の基礎 | 詳 細 |
第 4 回 | JS の null, undefined と Python の None の違い | この記事 |
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。