繁体   English   中英

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

[英]Is there a performance difference in JavaScript between “>” and “!=”?

对导航中的上一个链接进行绑定。 如果我们位于第一个位置,请不要对上一个链接执行相同的操作。 我正在做一个“!=”不等于测试,但意识到它可能大于“>。

然后我想,是更快吗?

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

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

绩效问题应通过评估而非猜测来解决。

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

如果您想测试与我在测试中稍有不同的东西,只需添加自己的测试以进行比较即可。

您是说……绝对不同,还是“意义不同”?

无论如何,这将100%取决于基础VM的实现。 但是,设置一个标志并使该标志成为&&的第一个(用于短路)可能更快一些 ,而将数字部分作为第二个。

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

同样,依赖于VM,我无法相信这两种方式都非常重要。

关于什么 -

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

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

我在jsperf上做了一个测试页:

http://jsperf.com/different-from

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM