javascript中的關(guān)于類型轉(zhuǎn)換的性能優(yōu)化
更新時間:2010年12月14日 21:47:33 作者:
類型轉(zhuǎn)換是大家常犯的錯誤,因?yàn)镴avaScript是動態(tài)類型語言,你不能指定變量的類型。
1. 把數(shù)字轉(zhuǎn)換成字符串,應(yīng)用"" + 1,雖然看起來比較丑一點(diǎn),但事實(shí)上這個效率是最高的,性能上來說:("" + ) > String() > .toString() > new String(),盡量使用編譯時就能使用的內(nèi)部操作要比運(yùn)行時使用的用戶操作要快。String()屬于內(nèi)部函數(shù),所以速度很快,而.toString()要查詢原型中的函數(shù),所以速度遜色一些,new String()用于返回一個精確的副本。
2. 浮點(diǎn)數(shù)轉(zhuǎn)換成整型,這個更容易出錯,很多人喜歡使用parseInt(),其實(shí)parseInt()是用于將字符串轉(zhuǎn)換成數(shù)字,而不是浮點(diǎn)數(shù)和整型之間的轉(zhuǎn)換,我們應(yīng)該使用Math.floor()或者M(jìn)ath.round()。另外,和第二節(jié)的對象查找中的問題不一樣,Math是內(nèi)部對象,所以Math.floor()其實(shí)并沒有多少查詢方法和調(diào)用的時間,速度是最快的。
3. 對于自定義的對象,如果定義了toString()方法來進(jìn)行類型轉(zhuǎn)換的話,推薦顯式調(diào)用toString(),因?yàn)閮?nèi)部的操作在嘗試所有可能性之后,會嘗試對象的toString()方法嘗試能否轉(zhuǎn)化。
2. 浮點(diǎn)數(shù)轉(zhuǎn)換成整型,這個更容易出錯,很多人喜歡使用parseInt(),其實(shí)parseInt()是用于將字符串轉(zhuǎn)換成數(shù)字,而不是浮點(diǎn)數(shù)和整型之間的轉(zhuǎn)換,我們應(yīng)該使用Math.floor()或者M(jìn)ath.round()。另外,和第二節(jié)的對象查找中的問題不一樣,Math是內(nèi)部對象,所以Math.floor()其實(shí)并沒有多少查詢方法和調(diào)用的時間,速度是最快的。
3. 對于自定義的對象,如果定義了toString()方法來進(jìn)行類型轉(zhuǎn)換的話,推薦顯式調(diào)用toString(),因?yàn)閮?nèi)部的操作在嘗試所有可能性之后,會嘗試對象的toString()方法嘗試能否轉(zhuǎn)化。
您可能感興趣的文章:
- 優(yōu)化JavaScript腳本的性能的幾個注意事項(xiàng)
- JavaScript腳本性能的優(yōu)化方法
- JavaScript腳本性能優(yōu)化注意事項(xiàng)
- javascript模版引擎-tmpl的bug修復(fù)與性能優(yōu)化分析
- js性能優(yōu)化 如何更快速加載你的JavaScript頁面
- web性能優(yōu)化之javascript性能調(diào)優(yōu)
- 有關(guān)javascript的性能優(yōu)化 (repaint和reflow)
- JavaScript中的無阻塞加載性能優(yōu)化方案
- JavaScript性能優(yōu)化之小知識總結(jié)
相關(guān)文章
微信JS SDK接入的幾點(diǎn)注意事項(xiàng)(必看篇)
下面小編就為大家?guī)硪黄⑿臞S SDK接入的幾點(diǎn)注意事項(xiàng)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06javascript實(shí)現(xiàn)繼承的簡單實(shí)例
這篇文章主要介紹了javascript實(shí)現(xiàn)繼承的簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2015-07-07javascript 從if else 到 switch case 再到抽象
大家覺得在接手遺留代碼時,見到什么東東是最讓人感到不耐煩的?復(fù)雜無比的 UML ?我覺得不是。2010-07-07javascript Array.remove() 數(shù)組刪除
下面的代碼主要是實(shí)現(xiàn)了,刪除數(shù)組中指定的值。2009-08-08JavaScript面向?qū)ο髮?shí)現(xiàn)放大鏡案例
這篇文章主要為大家詳細(xì)介紹了JavaScript面向?qū)ο髮?shí)現(xiàn)放大鏡案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10