JavaScriptでの文字列の型とは
JavaScriptのデータ型は、数値、論理値、文字列、オブジェクトの4種類があります。
数値と論理値は、基本型と呼ばれています。
オブジェクトは、参照型と呼ばれています。
基本型は、代入、引数引渡し、比較、すべて値で行います。
参照型は、代入、引数引渡し、比較、すべて参照で行います。
では、文字列は、基本型でしょうか、それとも参照型でしょうか?
たぶん、C言語系の人は参照型、Perl系の人は基本型だと思うのでしょう…。
答えは、基本型です。
文字列は、代入、引数引渡し、比較、すべて値で行います。
ただし、JavaScriptでは、文字列の中身自体が変更できない仕様なので、厳密には基本型なのか参照型なのかわかりません。
とにかく、振る舞いとしては基本型で、特に比較は参照でなく値で行うのは確かです。
// 文字列型の場合 var xxx = "ABC"; // 値が代入される if (xxx == "ABC") { // 値で比較される alert(xxx); // ABCと表示 yyy(xxx); // 値渡し alert(xxx); // ABCと表示 } function yyy (xxx) { // 値渡し xxx = "XYZ"; } // オブジェクト型(配列)の場合 var aaa = ["ABC"]; // 参照が代入される var ccc = aaa; if (aaa == ccc) { // 参照で比較される alert(aaa[0]); // ABCと表示 bbb(aaa); // 参照渡し alert(aaa[0]); // XYZと表示 } function bbb (aaa) { // 参照渡し aaa[0] = "XYZ"; }