普段は意識しなくていいと思いますが、たまにハマることがある、newで作るStringオブジェクトとリテラル表記で作る文字列の違いについてです。 var str0 = new String('foo'); // Stringオブジェクトを作成 var str1 = 'foo'; // 文字列リテラルで作成 Stringオブジェクトのstr0は参照型のオブジェクト、文字列リテラルで作ったstr1はプリミティブ型です。 typeof var str0 = new String('foo'); alert(typeof str0); // object var str1 = 'foo'; alert(typeof str1); // string まずはタイプが違いますね。 instanceof var str0 = new String('foo'); alert(str0 instanceof