JavaScriptの「undefined」と「null」の違い

この記事を書いたチーム:frontier

JavaScriptにおける「undefined」と「null」の違いについて記載します。

undefined

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

undefinedは、主に以下の状態です。

・宣言された変数に値がまだ代入されていない場合の値
・存在しないオブジェクトのプロパティにアクセスした場合の返り値
・関数の戻り値がない場合の返り値

例えば次のように変数aを宣言だけし、初期値を設定しない場合aの値はundefinedです。
let a; 

 

null

nullは、宣言された変数にnullが代入された状態です。
初期化時にまだ値がないことを意図して明示的に設定する際に使用します。
例えば次のように変数bを宣言し、nullを代入するとbの値はnullです。
let b = null; 

使い分けは変数の初期化にはnullを使い、存在しないプロパティや戻り値の確認、未定義チェックにはundefinedを使います。

 

型の違い

typeof undefined”undefined”を返し、typeof null”object”を返します。
undefined == nulltrueを返し、undefined === nullfalseを返します。

 

NullPointerExceptionJavaScriptnullについて

NullPointerExceptionは主にJavaC#デバッグでnull参照に対しメソッドやプロパティへアクセスした場合に発生する例外のことです。
JavaScriptの場合はnull に対してプロパティアクセスや関数呼び出しを行うとTypeErrorというエラーが発生し、JavaのようなNullPointerExceptionという例外名は存在しません。
例として下記のコードでは、TypeError: Cannot read properties of nullというエラーが発生します。

 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス