変数やクラスの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']);
}