我今天又在阅读我的javascript书籍,它解释了引用类型变量和基元类型变量之间的区别。它给出了这些例子来说明不同之处。字符串:JavaScript中的原始类型变量或引用类型变量?
实施例1(原语类型)
var a = 3.14;
var b = a;
a = 4;
alert(b); // Displays 3.14
实施例2(参考类型)
var a = [1, 2, 3];
var b = a;
var a[0] = 99;
alert(b); // Displays the changed array [99, 2, 3]
我理解这个例子,我没有关于它的任何问题。我的问题是关于JavaScript中的字符串。直觉上,我会假定字符串是引用类型变量,因为如果动态大小,但我在example.com上搞乱了它们,并且我创建了这个似乎表明字符串是原始类型变量的示例。
例3(字符串?)
var a = 'Ben';
var b = a;
var a = 'Benjamin';
alert(b); //Displays the unchanged 'Ben'
我搜索在这里对堆栈溢出,并在谷歌,我发现,谈到这一点,但他们大多都在谈论其他语言的几篇文章如Java和C#。
问: 在javascript中的字符串认为是原始的或引用变量的类型以及是否有我应该知道的地方串不同的工作,那么我会想到的任何其他情况呢?
如果您尝试使用数组'['B','e','n']'的示例3,则您将获得相同的结果 - 将新值(另一个数组)分配给'a'变量这不会影响'b'。尝试使用示例2(其中您更改'a'的'0'字段)使用字符串 - 它会引发异常。 – Bergi