Javascript String 是不能变的吗

我在很多书上也看到这个效果,也不时没有深究。直到这个效果,我觉得提的蛮好的。

我自己测试了一下:

1、var str1=str2=“can‘t change”;

2、在控制台下,看了一下str的一切方法,并用str1测试了一些方法。然后看str2的值有没有变化,即可以复杂判别所定义的字符串有没有变化。(str1和str2都可以看成是指向这个字符串地址的变量,假设str1的一些操作能改动这个字符串,那str2对应的值也会变化。)

3、确实发现了一些效果:假设方法设计到修正到字符串,会有两种状况:

要么是该方法修正了字符串,不过是生成了一个新的字符串传前往,并没有修正原来的字符串。

要么是str1确实变化了,不过是指向了一个新的字符串或许是对象等,曾经不会指向原来的字符串了。此时str2值依然没有变化,说明这个字符串依然没有变。

4、我又想到string其实也是对象的一种,我就给str1赋予了一些对象方法,但是结果测试此字符串依然没有变化。这点我也很困惑。

所以,我的初步复杂测试,string的值一旦存在了,确实不能改动了。还请大牛讲一下,外部的原理和完成方法。

提供最优质的资源集合

立即查看 了解详情