2013-10-10 100 views
2

我遵循總是使用絕對比較'==='的做法,但是一些學過的同事認爲,在對特定比較類型高度自信的情況下,對於類型檢查來說這是不必要的計算時間浪費。'=='和'==='之間有明顯的性能差異嗎?

所以我的問題是這樣的;在比較過程中,總是會對類型檢查值產生任何顯着的性能影響?

+3

您是否嘗試測量性能差異? –

+2

'=='強制執行檢查的值,因此也可以使'==='支持一個參數。 – finishingmove

+0

看看[JavaScript和==和===之間的區別](http://stackoverflow.com/questions/523643/difference-between-and-in-javascript) – Sajmon

回答

0

有在jsperf的這個測試:

看一看,自己嘗試一下:http://jsperf.com/equalitydoubletriple/4

編輯:這個測試可能會更好,因爲@dystroy提到在下面的評論:http://jsperf.com/equalitydoubletriple/5

+0

這不是依賴於瀏覽器..? – user2339071

+0

確實。但是所有的測試都會被記錄下來,所以你可以看到瀏覽器之間的差異圖表。這不是最終的答案,但你至少可以得到一個想法。 – becquerel

+0

是的,它會。所以你需要在不同的瀏覽器上運行它,看看它在所有/某些/沒有更好。 –

1

=====之間沒有顯着的性能差異。它們之間的唯一區別是類型比較。 ==比較即使在2種情況有不同類型時也可以使用。 ===比較只接受2個相同類型條件之間的比較。例如:當intchar可以與==比較,===比較不能使用。

3

如果對象已經是同一類型,則可能沒有顯着的性能差異。在進行數據比較之前,兩個操作員都必須查找並比較兩個參數的類型。

如果對象是不同類型的,===應該會快一點,因爲它可以立即返回false,而==將強制的參數傳遞給其他類型的一個,然後進行比較。

相關問題