哪个效率更高?
// < 11
for(var i = 0; i < 11; i++){ ... }
或者
// <= 10
for(var i = 0; i <= 10; i++){ ... }
我不确切知道 for 函数是如何工作的,但我假设它< 11
更有效,因为<= 10
似乎在每次10
比较中它也检查它是否也相等,而不仅仅是更小,所以它必须进行 2 次比较而不是一。
我是对的,或者这是如何工作的?
哪个效率更高?
// < 11
for(var i = 0; i < 11; i++){ ... }
或者
// <= 10
for(var i = 0; i <= 10; i++){ ... }
我不确切知道 for 函数是如何工作的,但我假设它< 11
更有效,因为<= 10
似乎在每次10
比较中它也检查它是否也相等,而不仅仅是更小,所以它必须进行 2 次比较而不是一。
我是对的,或者这是如何工作的?
如果有任何区别,那将是非常小的。您应该使用更易于维护的代码。通常<
首选运算符,因为从 0 开始循环,而计数器是< x
迭代x
。
但是,任何差异都不是因为进行了<=
两次比较,因为它没有。
当比较两个数值时,计算机实际上将它们相减,并检查会发生什么。如果结果是正数、负数或零,则不同的运算符会给出正确的结果:
operator: true when result is:
---------- ---------------------
< negative
<= not positive
== zero
> positive
>= not negative
每当您有性能问题时,请务必在jsPerf.com上提出。
有了这个测试用例:
实际上,这充其量只是一个微预优化,您可能应该将注意力集中在其他地方。