+ =,++,+之间的性能差异

时间:2011-03-25 14:51:07

标签: javascript

我创建了这个测试http://jsperf.com/loop-counter为什么这三个表达式之间存在这样的差异。

4 个答案:

答案 0 :(得分:9)

因为你的测试是错误的。你重复使用相同的变量,所以它越大,增量就越慢。看看这个:http://jsperf.com/loop-counter/6

这就是jsperf的工作原理 - 在所有测试之前,准备代码只运行一次。

答案 1 :(得分:2)

我尝试多次运行所有三个测试,每次重新加载页面时,我尝试的第一个测试是迄今为止最快的。

所以我猜测测试太短暂存在问题,即运行测试的代码占用大部分时间。

答案 2 :(得分:2)

如果这不是一个修辞问题,那么你真的想要一个aswer:那么人们如何在浏览器中编写JS引擎。

答案 3 :(得分:2)

这是因为该计划在幕后做了什么:

l_count + = 1; 这会将数字1添加到变量中。

l_count = l_count + 1; 这会调用变量l_count,读取它,将结果加1,并将其传递回l_count。

l_count ++; 在运行该行后,它会向变量添加1。因此,当行完成时,该值存储在另一个临时变量中,然后返回值,添加1并保存回原始值。