首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JavaScript中将数字转换为字符串的最佳方法是什么?

在JavaScript中将数字转换为字符串的最佳方法是什么?
EN

Stack Overflow用户
提问于 2011-04-24 00:25:33
回答 23查看 576.7K关注 0票数 636

将数字转换为字符串的“最佳”方法是什么(在速度优势、清晰度优势、内存优势等方面)?

下面是一些例子:

  1. String(n)
  2. n.toString()
  3. ""+n
  4. n+""
EN

回答 23

Stack Overflow用户

回答已采纳

发布于 2011-04-24 00:26:48

如下所示:

代码语言:javascript
复制
var foo = 45;
var bar = '' + foo;

实际上,尽管我通常这样做是为了简单方便,但在超过1,000秒的迭代中,对于原始速度来说, .toString()是有优势的

请看这里的性能测试(不是我写的,而是我自己写的时候发现的):http://jsben.ch/#/ghQYR

基于上述JSPerf测试的最快速度:str = num.toString();

应该注意的是,当您考虑到它可以在0.1秒内以任何方式100万次进行转换时,速度上的差异并不是太大。

更新:浏览器的速度似乎有很大的不同。在Chrome中,根据这个测试http://jsben.ch/#/ghQYRnum + ''似乎是最快的

更新2:再次基于我上面的测试,应该注意的是,Firefox20.0.1执行.toString()的速度比'' + num示例慢100倍。

票数 647
EN

Stack Overflow用户

发布于 2011-04-24 00:27:50

在我看来,n.toString()因其清晰度而获奖,我不认为它会带来任何额外的开销。

票数 430
EN

Stack Overflow用户

发布于 2011-04-24 00:34:00

对于刚接触该语言的人来说,显式转换非常清楚。正如其他人所建议的那样,如果开发人员不知道强制规则,那么使用类型强制会导致歧义。最终,开发人员的时间比CPU时间更昂贵,所以我会以后者为代价对前者进行优化。也就是说,在这种情况下,差异可能可以忽略不计,但如果不是这样,我相信有一些像样的JavaScript压缩器可以优化这类事情。

因此,出于上述原因,我会选择:n.toString()String(n)String(n)可能是一个更好的选择,因为如果n为null或未定义,它不会失败。

票数 91
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5765398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档