向一个函数传递很大(应该不会超过1M)的字符串的时候会出现效率问题么?使用全局变量能将效率提高多少? 字符串好像是按值传递的,效率应该很低吧?求别让我自己试。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 反复赋值的时候是值传递你2个变量 来回赋值相同的字符串 修改其中一个 不就知道了几分钟自己就理解了别人说的你能信吗其实,js的字符串赋值是按引用传递的。理论上:你2个变量赋值同一个字符串,修改其中一个,另一个也会改变但是当你测试时就会发现根本无法对这个字符串对象本身进行任何修改。字符串的下标和length都是只读的,也不能设置自定义属性。想要改变字符串变量的内容你只有再次对其赋值一个新的字符串。也就是说js的字符串是引用传递的,但却不存在引用传递的任何特性。这么做的原因就是像楼主说的为提高效率。要测试是不是引用传递,可以把同一个字符串赋值给很多变量,看看浏览器占用内存会不会增加。 1M的字符串 估计得有10W字符吧如果使用的地方不多应该还好之前做过一个项目 局域网内的服务器返回值有30-50M 感觉也还好 直接写传递的应该就是引用,如果不放心,用字符串对象,不用直接量就行了var str = new String('abcd...');这样传递的必然是引用; ajax传递数组和参数 关于全选的问题.... ext 查询,GridPanel怎么重新加载数据? javascript计算器的思路 求一个正则 ~~ c++语言中的结构如何JS表示? 如何設置dropdownlist的邊框及滾動條的顔色?在線等 这样对吗?该怎样写? 急!!symwinopen not definde at 0 问题 关于鼠标经过弹出说明框和单元格进度显示的问题,在ie中通过,在ns中不行,请教各位大虾!急 google浏览器,禁用后退按钮怎么做??? javascript对象的问题,求大神解释
几分钟自己就理解了
别人说的你能信吗
其实,js的字符串赋值是按引用传递的。理论上:你2个变量赋值同一个字符串,修改其中一个,另一个也会改变但是当你测试时就会发现根本无法对这个字符串对象本身进行任何修改。字符串的下标和length都是只读的,也不能设置自定义属性。想要改变字符串变量的内容你只有再次对其赋值一个新的字符串。也就是说js的字符串是引用传递的,但却不存在引用传递的任何特性。这么做的原因就是像楼主说的为提高效率。要测试是不是引用传递,可以把同一个字符串赋值给很多变量,看看浏览器占用内存会不会增加。
如果使用的地方不多应该还好
之前做过一个项目 局域网内的服务器返回值有30-50M 感觉也还好
直接写传递的应该就是引用,如果不放心,
用字符串对象,不用直接量就行了
var str = new String('abcd...');
这样传递的必然是引用;