我遵循總是使用絕對比較'==='的做法,但是一些學過的同事認爲,在對特定比較類型高度自信的情況下,對於類型檢查來說這是不必要的計算時間浪費。'=='和'==='之間有明顯的性能差異嗎?
所以我的問題是這樣的;在比較過程中,總是會對類型檢查值產生任何顯着的性能影響?
我遵循總是使用絕對比較'==='的做法,但是一些學過的同事認爲,在對特定比較類型高度自信的情況下,對於類型檢查來說這是不必要的計算時間浪費。'=='和'==='之間有明顯的性能差異嗎?
所以我的問題是這樣的;在比較過程中,總是會對類型檢查值產生任何顯着的性能影響?
有在jsperf的這個測試:
看一看,自己嘗試一下:http://jsperf.com/equalitydoubletriple/4
編輯:這個測試可能會更好,因爲@dystroy提到在下面的評論:http://jsperf.com/equalitydoubletriple/5
這不是依賴於瀏覽器..? – user2339071
確實。但是所有的測試都會被記錄下來,所以你可以看到瀏覽器之間的差異圖表。這不是最終的答案,但你至少可以得到一個想法。 – becquerel
是的,它會。所以你需要在不同的瀏覽器上運行它,看看它在所有/某些/沒有更好。 –
==
和===
之間沒有顯着的性能差異。它們之間的唯一區別是類型比較。 ==
比較即使在2種情況有不同類型時也可以使用。 ===
比較只接受2個相同類型條件之間的比較。例如:當int
和char
可以與==
比較,===
比較不能使用。
如果對象已經是同一類型,則可能沒有顯着的性能差異。在進行數據比較之前,兩個操作員都必須查找並比較兩個參數的類型。
如果對象是不同類型的,===
應該會快一點,因爲它可以立即返回false
,而==
將強制的參數傳遞給其他類型的一個,然後進行比較。
您是否嘗試測量性能差異? –
'=='強制執行檢查的值,因此也可以使'==='支持一個參數。 – finishingmove
看看[JavaScript和==和===之間的區別](http://stackoverflow.com/questions/523643/difference-between-and-in-javascript) – Sajmon