【メモ】JavaScriptにおけるnullとundefined
undefinedとは
- undefinedはある変数の値が定義されていないことを表す値。(変数の型自体が定義されていない)
- ある変数が宣言済みであるものの値を与えられていない。
- 未定義のプロパティを参照しようとした。
- 何もreturnしない関数の戻り値。
var x; var obj = { a:12345 }; document.writeln(x); // undefined document.writeln(obj.b) // undefined
- undefinedはリテラルではなくGlobalオブジェクト(グローバル変数や関数を管理するためJavaScriptが自動的に生成する)のプロパティで定義されたプロパティにすぎない。
- スクリプトから値を変更することもできるが、当然ながら影響範囲という点ですべきでない。
nullとは
- nullはオブジェクトが存在しないことを意味する値。(定義はされているが、何も参照していない)
- undefinedのようにプロパティではなく、リテラル。lもundefinedも基本形の特殊型に分類される。
比較のしかた
undefined == nullはtrueになる。
- typeof a === "undefined"
そこでよく使われているのがtypeofを使うやり方です。undefined値にtypeof演算子を作用させると必ず"undefined"という文字列が返るため、それと比較することで判定を行います。
- ==nullで代用する
[JavaScript] typeof arg == 'undefined' っていらないんじゃね? / LiosK-free Blogで紹介されていたやり方です。nullはundefinedと違って予約語です。どの文脈でも確実にnullが入っているので安心して使えます。 「===」を使わず「==」を使っているのがポイントですね。
参考
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/30
- メディア: 大型本
- この商品を含むブログを見る