“>”之间的JavaScript是否存在性能差异?和“!=”?

时间:2011-10-03 16:37:21

标签: javascript performance

为导航中的上一个链接执行绑定。如果我们在第一个位置,不要对前一个链接做同样的事情。我做了一个“!=”不等于测试,但意识到它可能是一个“>”比...更棒。

然后我想,是一个更快?

if (numberToCheck != 0) {
    //doSomething();
}

VS

if (numberToCheck > 0) {
    //doSomething();
}

4 个答案:

答案 0 :(得分:4)

性能问题应该通过测量来解决,而不是推测。

你可以在这里看到http://jsperf.com/inequality-vs-greater-than。此测试的结果(在我的计算机上)因浏览器而异。有些人在不平等方面更快。有些更快,少于。您可能会在代码的其他区域发现更大的速度差异。

如果你想测试一些与我在测试中稍微不同的东西,只需添加你自己的测试进行比较。

答案 1 :(得分:1)

你的意思是......绝对差异,还是“有意义的不同”?

在任何情况下,它都将取决于底层VM实现的100%。设置一个标志可能更快,并且该标志是&&中的第一个(用于短路),并且数字部分为秒。

if (keepChecking && numberToCheck != 0) {
    keepChecking == false;
    // doSomething();
}

再次,依赖VM,我无论如何都无法相信这一点很重要。

答案 2 :(得分:0)

怎么样 -

if (numberToCheck !== 0) {
//doSomething();
}

实际上,我怀疑人类会注意到这种差异。另外,每个浏览器js引擎可能会产生不同的结果。

答案 3 :(得分:0)

我在jsperf做了一个测试页:

http://jsperf.com/different-from

在MacBook Pro的Chrome中,它们完全相同。