字符串转数字测试--知识备忘
生活随笔
收集整理的這篇文章主要介紹了
字符串转数字测试--知识备忘
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
閑來無事,看了不少js的奇淫技巧,其實很多只是賣弄知識真正用上的并不多,為了滿足好奇心做了一個實驗。
這個實驗是關于將字符串轉成數字的,因為前端處理小數會出很多問題,所以一般都是后臺的同學把數據處理好了給前端,但是后端傳過來的是字符串,而這些字符串有些是帶小數點的,有些是整數,傳過來有時候要做一些操作,字符串做不了所以要做類型轉換,即String --> Number。
對于類型轉換有常用的幾種方法,現在一起看看這幾種方法的速度如何?
字符串轉數字的方法有,Number,parseInt,parseFloat,還有隱式轉換加號(+)和算式表達(- 0)
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <body><p id="content"></p><script src="../lib/jquery.js"></script><script>$(function(){var str = '3.222';var res = [];//19.06ms console.time('test');for(var i = 0;i < 100000; i++){res.push(+str);}console.timeEnd('test');// 9.35ms console.time('Number');for(var i = 0;i < 100000; i++){res.push(Number(str));}console.timeEnd('Number');// 6.22ms console.time('parseInt');for(var i = 0;i < 100000; i++){res.push(parseInt(str));}console.timeEnd('parseInt');//8.84ms console.time('parseFloat');for(var i = 0;i < 100000; i++){res.push(parseFloat(str));}console.timeEnd('parseFloat');});</script> </body> </html>結論就是:parseInt > parseFloat > Number > 隱式類型,這里是加號(+)
測試的瀏覽器用的是firefox,chrome,發現firefox的差異性較大,chrome下Number和隱式轉換差不多,parseInt和parseFloat差不多。
雖然代碼寫起來很方便少了字符卻沒有帶來性能上的提升,所以說有些奇淫技巧不能亂用啊
其實這個實驗的起源于+new Date(),看到這個技巧很雞凍,很風騷,做了實驗后才看清事物的本質。
轉載于:https://www.cnblogs.com/masita/p/7426493.html
總結
以上是生活随笔為你收集整理的字符串转数字测试--知识备忘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的装饰器
- 下一篇: Eclipse rap 富客户端开发总结