JavaScriptにはnull
とundefined
と、立場が似たものがあるわけですが、さらにこのundefined
にも二種類あるよってお話です。
「本当に無い」のと「「無い」がある」のと
値がundefined
であるときは、文字通り「未定義」である場合と、「未定義という値」である場合とがあります。
var obj = { a: undefined }; console.log(obj.x); // => undefined(定義されていないプロパティ) console.log(obj.a); // => undefined(未定義という値)