JavaScript中的parseFloat和float int有多快?

How fast is parseFloat Vs. float ints in JavaScript?

本文关键字:int float 中的 parseFloat JavaScript      更新时间:2023-09-26

我从客户端的内部API获得了一个巨大的数据集。它将包含一堆价格的数值数据,例如:$31.23。他把它们作为{"spend":"21.23"}给了我,这很好,但我担心在1000多个项目之后,在所有这些值上运行parseFloat()(在绘制它们的顶部)可能会对客户端的浏览器造成资源负担。

有人这样做过吗?

= = = =

更新

我很抱歉。我的问题太模糊了。我担心的是,它是一个字符串,我正在解析它。我的问题是parseFloat比int更快。例如,是否将parseFloat("12.12")附加到div中比简单地附加12.12更快,如果是这样,速度有多快?

在我的工作机器(Mac OS X, Intel 2 GHz Core i7)上,我在jsperf.com上看到以下结果:

Browser    | parseFloat calls per second
----------------------------------------
Chrome 12  | 5.3 million
Firefox 6  | 21.7 million
IE 8       | 666.9 thousand <- totally unfair, ran on virtual machine
Opera 11   | 5.2 million

这远远不是一个详尽的调查;但是在每秒超过60万个调用的最小(并且在虚拟机上),我认为你应该很好。

关于parseFloat或parseInt 的速度,MDN建议使用一元运算符+代替,如

+"12.12"
=> 12.12    

MDN联系

一元加号操作符位于其操作数之前,并求值为其操作数,但如果不是,则尝试将其转换为数字。虽然一元否定(-)也可以转换非数字,但一元加号是将某物转换为数字的最快和首选方法,因为它不对数字执行任何其他操作。

您知道parseFloat()是基于浏览器的。因此,据我所知,浏览器在200个值之后可能会崩溃,在10000个值之后可能会正常工作。

这取决于浏览器有多少选项卡,还有哪些脚本正在运行,有多少CPU可供处理,当然还有什么浏览器

如果你的客户端使用带有1000个插件的firefox,它将永远无法顺利运行你的脚本。

只是我的意见。如果你想做得好,你应该在服务器上预处理,然后显示。

类型

javascript:a = +new Date;X = 100000;while(——x) parseFloat("21.23");alert(+new Date - a);

到你的url栏。

这是唯一确定的方法。

老实说,你不能回答这个问题。这取决于浏览器,例如,firefox 8应该比firefox 6快,等等。