var a = {}, b = [], c = 'hoge', d = new String('hoge'); typeof a; // "object" typeof b; // "object" ← ファッ?! typeof c; // "string" typeof d; // "object" ← ファッ?! Object と Array を区別してくれないとかないわー。new String()使うことないけど、区別しちゃうとかないわー。 ということで以前に自分が日本語訳したJavaScript Gardenにも書いてあった方法を使うと 判別が楽になるんじゃないかと。 function is(type, obj) { var clas = Object.prototype.toString.call(obj).slice(8, -1); return obj !== undefin