JavaScriptでの文字列は、オブジェクトか?
JavaScriptでの文字列は、基本型で、参照でなく値として処理します。
しかし、文字列は、Stringオブジェクト同じようにプロパティやメソッドが使用できます。
では、文字列は、オブジェクトなのでしょうか・・・。
文字列をtypeofをするとちゃんと string で objectでないのです。
あたかもStringオブジェクトに見えるのは、JavaScriptがオブジェクトコンテキストのとき、文字列をStringオブジェクトにラッピングするのです。
このようなオブジェクトをラッパーオブジェクトといいます。
したがって、JavaScriptでの文字列は、オブジェクト(object)でなく、あくまでも文字列(string)なのです。
var aaa = "0123456789"; alert("0123456789".length); // 10表示(あたかもStringオブジェクトになる) alert("0123456789".substr(5, 5)); // 56789を表示 alert(typeof("0123456789"));// string と表示される alert(aaa.length); // 10表示 と表示される alert(aaa.substr(5, 5)); // 56789を表示 alert(typeof(aaa)); // 同じくstring と表示される aaa = new String("0123456789"); alert(aaa.length); // 10表示 と表示される alert(aaa.substr(5, 5)); // 56789を表示 alert(typeof(aaa)); // object と表示される