對導航中的上一個鏈接執行綁定。如果我們處於第一個位置,不要爲上一個鏈接做同樣的事情。我正在做一個「!=」不等於測試,但意識到它可能是一個「>」大於。在「>」和「!=」之間JavaScript有性能差異嗎?
然後我想,是一個更快?
if (numberToCheck != 0) {
//doSomething();
}
與
if (numberToCheck > 0) {
//doSomething();
}
對導航中的上一個鏈接執行綁定。如果我們處於第一個位置,不要爲上一個鏈接做同樣的事情。我正在做一個「!=」不等於測試,但意識到它可能是一個「>」大於。在「>」和「!=」之間JavaScript有性能差異嗎?
然後我想,是一個更快?
if (numberToCheck != 0) {
//doSomething();
}
與
if (numberToCheck > 0) {
//doSomething();
}
性能問題應通過測量解決,而不是猜測。
你可以在這裏看到http://jsperf.com/inequality-vs-greater-than。此測試的結果(在我的電腦上)因瀏覽器而異。有些不平等的情況會更快。有些人的速度比較快。您可能會在代碼的其他方面發現更大的速度差異。
如果您想測試與我在測試中放置的東西稍有不同的東西,只需添加您自己的測試以進行比較。
我認爲這是舉起這隻猴子的好地方。謝謝大家。我會重新記住jsperf。 – folktrash
什麼 -
if (numberToCheck !== 0) {
//doSomething();
}
其實,我懷疑人能發現其中的差別。另外,每個瀏覽器js引擎可能會產生不同的結果。
如果是單個操作,則無需將其中一個更改爲另一個。但是如果這是一個循環,可能會有明顯的差異。 – Dennis
你的意思是......絕對差異還是「有意義的差異」?
在任何情況下,它都將取決於底層VM實施的100%。雖然它可能是更快的來設置一個標誌,並且該標誌是&&
(用於短路)中的第一個,並且其數值部分在第二位。
if (keepChecking && numberToCheck != 0) {
keepChecking == false;
// doSomething();
}
再一次,依賴於虛擬機,我不敢相信這兩種方式都會影響很多。
我想我的意思是絕對差異。雖然我在實際應用中挖掘它可能可以忽略不計。 – folktrash
微優化!做任何最可讀的事情。速度差異可以忽略不計,並取決於實施。 – davin
他們不這樣做!如果numberToCheck爲負數? –
嘿,完全。只是好奇,如果有一個明確的答案。 – folktrash