在JavaScript中将数字转换为string的最佳方法是什么?
将数字转换为string(就速度优势,清晰度优势,内存优势等而言)是什么“最佳”方式?
一些例子:
- 
String(n)
- 
n.toString()
- 
""+n
- 
n+""
喜欢这个:
 var foo = 45; var bar = '' + foo; 
 实际上,尽pipe我通常这样做是为了方便起见,但是对于原始速度来说 ,超过1000次的迭代对于.toString() 
在这里看到性能testing(不是由我,而是当我去写自己的时候发现): http : //jsben.ch/#/ghQYR
 最快的基于上面的JSPerftesting: str = num.toString(); 
应该注意的是,当你考虑到它可以在0.1秒内以任何方式进行100万次的转换时,速度的差别不是太重要。
  更新:浏览器的速度似乎差别很大。 在Chrome中,“ num + ''似乎是基于此testinghttp://jsben.ch/#/ghQYR的最快速度 
  更新2:再次基于我上面的testing,应该指出的是,Firefox 20.0.1执行.toString()比'' + num样本慢大约100倍。 
 在我看来, n.toString()是为了清晰起见而获奖的,我不认为它会带来额外的开销。 
明确的转换对于那些对语言不熟悉的人来说是非常清楚的。 如其他人所暗示的那样,使用types强制,如果开发者不知道强制规则,就会导致模糊。 最终开发人员的时间比CPU时间成本更高,所以我会以后者为代价优化前者。 这就是说,在这种情况下,差异可能是微不足道的,但如果不是,我敢肯定,有一些体面的JavaScript压缩机,将优化这种事情。
 所以,由于上述原因,我会去: n.toString()或String(n) 。  String(n)可能是一个更好的select,因为如果n为null或未定义,它不会失败。 
将任何variables转换为string的最简单方法是向该variables添加一个空string。
 5.41 + '' // Result: the string '5.41' Math.PI + '' // Result: the string '3.141592653589793' 
 2..toString(); // the second point is correctly recognized 2 .toString(); // note the space left to the dot (2).toString(); // 2 is evaluated first 
资源
舌头很明显:
 var harshNum = 108; "".split.call(harshNum,"").join(""); 
或者在ES6中,您可以简单地使用模板string :
 var harshNum = 108; `${harshNum}`; 
 我喜欢前两个,因为他们更容易阅读。 我倾向于使用String(n)但这只是一个风格问题而已。 
那是除非你有一条线
 var n = 5; console.log ("the number is: " + n); 
这是非常自我解释
 如果您需要将结果格式化为特定的小数位数,例如表示货币,则需要类似toFixed()方法的东西。 
 number.toFixed( [digits] ) 
  digits是小数点后显示的位数。 
 我认为这取决于情况,但无论如何,您可以使用.toString()方法,因为它非常清楚地理解。 
如果我不得不考虑一切,我会build议如下
 var myint = 1; var mystring = myint + ''; /*or int to string*/ myint = myint + '' 
恕我直言,它是最快的方式转换为string。 纠正我,如果我错了。
如果您好奇哪个是最高性能的,请检查一下我在哪里比较所有不同的Number – > String转换。
 看起来像2+''或2+""是最快的。