parseFloat的速度有多快在JavaScript中浮动整数?

时间:2011-07-18 18:19:53

标签: javascript json api parsing parsefloat

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

有没有人这样做过?

==更新==

对不起我的问题太模糊了。我担心的是它是一个字符串,我正在解析它。我的问题是parseFloat比int更快。即将parseFloat("12.12")附加到div只是简单地追加12.12,如果是,则加快多快。

4 个答案:

答案 0 :(得分:7)

在我的工作机器(Mac OS X,Intel 2 GHz Core i7)上,我看到the following results on 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万次呼叫的最小(以及虚拟机上的 ),我认为你应该做得很好。< / p>

答案 1 :(得分:0)

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

这取决于浏览器有多少个选项卡,正在运行的其他脚本,可以自由处理多少CPU,当然还有哪些浏览器

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

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

答案 2 :(得分:0)

类型

javascript:a = +新日期; x = 100000; while(--x)parseFloat(“21.23”);警报(+新日期 - a);

进入您的网址栏。

这是唯一可以确定的方法。

诚实地说,你无法回答这个问题。这取决于浏览器,例如,firefox 8应该比6快,依此类推。

答案 3 :(得分:0)

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

+"12.12"
=> 12.12    

MDN Link

  

一元加运算符在其操作数之前,并计算其操作数,但是如果它已经没有,则尝试将其转换为数字。虽然一元否定( - )也可以转换非数字,但是一元加号是将某些东西转换为数字的最快和首选方式,因为它不会对数字执行任何其他操作。