| id | javascript-basics-null-undefined | |||
|---|---|---|---|---|
| title | undefined と null | |||
| level | 3 | |||
| question |
|
他言語経験者が最初に混乱しやすいのが、この undefined と null の違いです。
- undefined: JavaScriptエンジンが「値がまだない」ことを示すときに現れます(例: 宣言だけして代入していない変数)。
- null: プログラマが「ここには値がない」と明示したいときに代入します。
> let unassigned;
undefined
> unassigned
undefined
> let empty = null;
undefined
> typeof unassigned
'undefined'
> typeof empty
'object'
typeof null が 'object' になるのは、JavaScript初期から残っている歴史的な仕様です。null 自体はオブジェクトではなく、プリミティブ型の値です。