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