讀古今文學網 > 編寫高質量代碼:改善JavaScript程序的188個建議 > 建議172:推薦使用原生方法 >

建議172:推薦使用原生方法

無論怎樣優化JavaScript代碼,永遠都不會比JavaScript引擎提供的原生方法更快。其原因是JavaScript的原生部分在執行代碼之前已經存在於瀏覽器中,原生方法都是用原生語言寫的,如C++。這意味著這些方法被編譯成機器碼,作為瀏覽器的一部分,沒有JavaScript代碼的限制多。

經驗不足的JavaScript開發者經常犯的一個錯誤是在代碼中進行複雜的數學運算,卻沒有使用內置Math對像中那些性能更好的方法。Math對像包含專門設計的屬性和方法,使數學運算更容易。使用JavaScript內置函數比同樣功能的JavaScript代碼更快。

另外,借助各種框架或自定義函數可以像CSS選擇器那樣查詢DOM文檔。CSS查詢被JavaScript原生實現並由jQuery這個JavaScript庫來推廣。雖然jQuery引擎被認為是最快的CSS查詢引擎,但是它仍比原生方法慢。原生的querySelector和querySelectorAll方法在完成它們的任務時,平均只需要基於JavaScript的CSS查詢的時間的10%。大多數JavaScript庫已經使用了原生函數來提高整體性能。

當原生方法可用時,盡量使用它們,尤其是數學運算和DOM操作。用編譯後的代碼做越多的事情,代碼就會越快。