Mat*_*hew 1 javascript optimization
在这些类似的函数定义中,访问参数的最佳方式是什么?为什么?
function DoStuff()
{
return arguments[0] + arguments[1] + arguments[2];
}
function DoStuff(first, second, third)
{
return first + second + third;
}
Run Code Online (Sandbox Code Playgroud)
一个人分配的内存少于另一个吗?访问参数值比另一个更快吗?
这是我的测试:
function Test1()
{
var start = new Date();
for (var i = 0; i < 1000000; i++)
{
DoStuff1(i, i + 1, i + 2);
}
var done = new Date();
alert(done - start);
}
function Test2()
{
var start = new Date();
for (var i = 0; i < 1000000; i++)
{
DoStuff2(i, i + 1, i + 2);
}
var done = new Date();
alert(done - start);
}
function DoStuff1()
{
var result = arguments[0] + arguments[1] + arguments[2];
}
function DoStuff2(first, second, third)
{
var result = first + second + third;
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
IE FF
Test1()
2355 402
2381 395
2368 392
Test2()
504 6
507 7
505 7
Run Code Online (Sandbox Code Playgroud)
我认为测试2会更快但速度却快得多.因此,它不仅更具可读性,而且效率更高.
在这种情况下忘记性能并寻求可读性.从这个角度来看,选项(2)是首选 - 但是,我会选择更具描述性的名称.;-)
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |