簡體   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