哪一个更有效率?
// < 11
for(var i = 0; i < 11; i++){ ... }
或
// <= 10
for(var i = 0; i <= 10; i++){ ... }
我不确切知道for函数是如何工作的,但我假设< 11
更有效率,因为在<= 10
中似乎在每个10
比较中它都检查过如果它也是相等的,不仅仅是更小,所以它必须进行2次比较,而不是一次。
我是对的,或者这是如何运作的?
答案 0 :(得分:6)
如果有任何差异,它会非常小。您应该使用更易于维护的代码。通常首选<
运算符,因为在计数器为< x
时从0循环会产生x
次迭代。
然而,任何差异都不是因为<=
进行了两次比较,因为它没有。
比较两个数值时,计算机实际上会减去它们,并检查发生了什么。如果结果是正数,负数或零,则不同的运算符会给出真实的结果:
operator: true when result is:
---------- ---------------------
< negative
<= not positive
== zero
> positive
>= not negative
答案 1 :(得分:6)
如果您遇到性能问题,请始终在jsPerf.com上解决。
实际上这至多是微预优化,你应该把重点放在其他地方。