程序员在进行网站建设时,时常会碰到各种各样的问题,有些凭着经验可能就慢慢测试出来了,也有一些问题可能是平时都想不到的,比如Javascript String 是不能变的吗?
我在很多书上也看到这个问题,也一直没有深究。直到这个问题,我觉得提的蛮好的。我自己测试了一下:
1.var str1=str2=“can’t change”;
2.在控制台下,看了一下str的所有方法,并用str1测试了一些方法。然后看str2的值有没有变化,即可以简单判断所定义的字符串有没有变化。(str1和str2都可以看成是指向这个字符串地址的变量,如果str1的一些操作能改变这个字符串,那str2对应的值也会变化。)
3.确实发现了一些问题:如果方法设计到修改到字符串,会有两种情况:要么是该方法修改了字符串,不过是生成了一个新的字符串传返回,并没有修改原来的字符串。要么是str1确实变化了,不过是指向了一个新的字符串或者是对象等,已经不会指向原来的字符串了。此时str2值仍然没有变化,说明这个字符串仍然没有变。
4.我又想到string其实也是对象的一种,我就给str1赋予了一些对象方法,但是结果测试此字符串仍然没有变化。这点我也很困惑。所以,我的初步简单测试,string的值一旦存在了,确实不能改变了。还请大牛讲一下,内部的原理和实现方法。
更多网站建设信息,请关注大腕互联官网:www.dawaner.net