Javascript String 是不能变的吗作者:协策网络-技术部 标签:网站建设 日期:2014年03月25日 类别:基础教程 |
||||
我在很多书上也看到这个问题,也一直没有深究。直到这个问题,我觉得提的蛮好的。
我自己测试了一下: 1、var str1=str2=“can‘t change”;
2、在控制台下,看了一下str的所有方法,并用str1测试了一些方法。然后看str2的值有没有变化,即可以简单判断所定义的字符串有没有变化。(str1和str2都可以看成是指向这个字符串地址的变量,如果str1的一些操作能改变这个字符串,那str2对应的值也会变化。)
3、确实发现了一些问题:如果方法设计到修改到字符串,会有两种情况: 要么是该方法修改了字符串,不过是生成了一个新的字符串传返回,并没有修改原来的字符串。 要么是str1确实变化了,不过是指向了一个新的字符串或者是对象等,已经不会指向原来的字符串了。此时str2值仍然没有变化,说明这个字符串仍然没有变。
4、我又想到string其实也是对象的一种,我就给str1赋予了一些对象方法,但是结果测试此字符串仍然没有变化。这点我也很困惑。
所以,我的初步简单测试,string的值一旦存在了,确实不能改变了。还请大牛讲一下,内部的原理和实现方法。 您可能感兴趣的文章推荐 |
||||
|