javascript中的關(guān)于類型轉(zhuǎn)換的性能優(yōu)化
更新時間:2010年12月14日 21:47:33 作者:
類型轉(zhuǎn)換是大家常犯的錯誤,因為JavaScript是動態(tài)類型語言,你不能指定變量的類型。
1. 把數(shù)字轉(zhuǎn)換成字符串,應(yīng)用"" + 1,雖然看起來比較丑一點,但事實上這個效率是最高的,性能上來說:("" + ) > String() > .toString() > new String(),盡量使用編譯時就能使用的內(nèi)部操作要比運行時使用的用戶操作要快。String()屬于內(nèi)部函數(shù),所以速度很快,而.toString()要查詢原型中的函數(shù),所以速度遜色一些,new String()用于返回一個精確的副本。
2. 浮點數(shù)轉(zhuǎn)換成整型,這個更容易出錯,很多人喜歡使用parseInt(),其實parseInt()是用于將字符串轉(zhuǎn)換成數(shù)字,而不是浮點數(shù)和整型之間的轉(zhuǎn)換,我們應(yīng)該使用Math.floor()或者Math.round()。另外,和第二節(jié)的對象查找中的問題不一樣,Math是內(nèi)部對象,所以Math.floor()其實并沒有多少查詢方法和調(diào)用的時間,速度是最快的。
3. 對于自定義的對象,如果定義了toString()方法來進行類型轉(zhuǎn)換的話,推薦顯式調(diào)用toString(),因為內(nèi)部的操作在嘗試所有可能性之后,會嘗試對象的toString()方法嘗試能否轉(zhuǎn)化。
2. 浮點數(shù)轉(zhuǎn)換成整型,這個更容易出錯,很多人喜歡使用parseInt(),其實parseInt()是用于將字符串轉(zhuǎn)換成數(shù)字,而不是浮點數(shù)和整型之間的轉(zhuǎn)換,我們應(yīng)該使用Math.floor()或者Math.round()。另外,和第二節(jié)的對象查找中的問題不一樣,Math是內(nèi)部對象,所以Math.floor()其實并沒有多少查詢方法和調(diào)用的時間,速度是最快的。
3. 對于自定義的對象,如果定義了toString()方法來進行類型轉(zhuǎn)換的話,推薦顯式調(diào)用toString(),因為內(nèi)部的操作在嘗試所有可能性之后,會嘗試對象的toString()方法嘗試能否轉(zhuǎn)化。
您可能感興趣的文章:
相關(guān)文章
javascript 從if else 到 switch case 再到抽象
大家覺得在接手遺留代碼時,見到什么東東是最讓人感到不耐煩的?復(fù)雜無比的 UML ?我覺得不是。2010-07-07javascript Array.remove() 數(shù)組刪除
下面的代碼主要是實現(xiàn)了,刪除數(shù)組中指定的值。2009-08-08JavaScript面向?qū)ο髮崿F(xiàn)放大鏡案例
這篇文章主要為大家詳細介紹了JavaScript面向?qū)ο髮崿F(xiàn)放大鏡案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10