JavaScript の undefined のナゾ

JavaScript では、ある識別子が未定義の場合、undefined という特殊な値を持ちます。
最近気づいた(遅い)のですが、引用符付きの “undefined” と、引用符無しの undefined では意味が異なるんですね。
まず、宣言前の識別子を undefined と比較しようとするとエラーになります。
ただし、typeof演算子を使って “undefined” という文字列と比較することはできます。

一方、宣言後は 引用符無しの undefined と、直接比較することが出来ます。

まとめると、次のような感じです。

//----------------宣言前-----------------------------------
alert( variable == undefined ); // -> エラー

alert( typeof variable == undefined ); // -> false
alert( typeof variable == "undefined" );  // -> true

var variable;  // 宣言する

//----------------宣言後-----------------------------------

alert( variable == undefined ); // -> true

variable = 0;  // 値を代入する

alert( variable == undefined ); // -> false

ややこしいですね~

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*