javascript 函数参数限制说明_javascript技巧
程序员文章站
2022-05-05 12:37:10
...
测试结果:
safari 下是65535个.即 ushort 来存储(2字节 16个1).更多的则忽略.
其他浏览器 至少是int.MaxValue .据说FireFox 甚至是用long 来维护 实参数.
其他浏览器 也许是int 或者可能是uint .这个就不管了. 毕竟我们知道了瓶颈 在 65535.
基于 以上基础.可以在 连接数组时 考虑优先采用 [].push.apply(a,b) 代替 a=a.concat(b);
我们只需要注意 对于safari 来说 b的length不能超过65535就ok啦.
concat 的 问题在于 产生的新数组 并 遍历 a 和 b 两个数组,再依次把a和b的元素放入.
测试代码:
var count = 100000, a = [1,2,3], b = [4,5,6], r = [], i, d;
d = new Date ;
for (i = count; i-- ;){
a.concat(b);
}
r[0] = new Date - d;
d = new Date ;
for (i = count; i-- ;){
r.push.apply(a,b);
//a = [1,2,3] ;
}
r[1] = new Date - d;
alert(r);
可以得出结论 即使是ie6 chrome2 safari 3 firefox 2这样古老的浏览器 push也是完胜的,个别浏览器 即使去掉 //a = [1,2,3] ; 注释部分. 居然效率也是胜过 concat的. 如chrome7 dev 和safari 5.
上一篇: PHP自定义安装
下一篇: PhpStorm 使用备忘录(六)
推荐阅读
-
了解JavaScript函数中的默认参数
-
轻松学习JavaScript函数中的 Rest 参数
-
javascript,php获取函数参数对象的代码
-
JavaScript 中函数的参数
-
Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数
-
举例说明如何为JavaScript的方法参数设置默认值
-
编写JavaScript函数parseQueryString,把URL参数解析为一个对象(代码分析)
-
javascript函数教程之函数参数介绍
-
将HTML输入值作为JavaScript函数参数传递
-
JavaScript中的参数传递(求值策略),ECMAScript中所有函数的参数都是按值传递吗