変数やクラスのundefineの判定方法は色々とあるが確定が特にされていない。

そのため、どれが正しいか分からないし、決まっていない。

以下の方法で解決したので、この方法も判定方法のひとつとして考えてよい。

hasOwnProperty()を利用する

hasOwnProperty()は指定したプロパティが存在するか(undefine)判定する性質をもつ

// 例
var hoge['str'] = "配列";
if(hoge.hasOwnProperty('str')) {
  // 宣言してるため、trueで中を通る
  console.log(hoge['str']);
}

if(hoge.hasOwnProperty('hoge')) {
  // 宣言していないため、falseで通らない
  console.log(hoge['hoge']);
}