将数字转换为字符串的“最佳”方法是什么(从速度优势、清晰度优势、内存优势等方面考虑)?
一些例子:
字符串(n) n.toString() “”+n n+“”
将数字转换为字符串的“最佳”方法是什么(从速度优势、清晰度优势、内存优势等方面考虑)?
一些例子:
字符串(n) n.toString() “”+n n+“”
当前回答
方法toFixed()也可以解决这个问题。
var n = 8.434332;
n.toFixed(2) // 8.43
其他回答
当使用node.js时,结果似乎类似。我运行这个脚本:
let bar;
let foo = ["45","foo"];
console.time('string concat testing');
for (let i = 0; i < 10000000; i++) {
bar = "" + foo;
}
console.timeEnd('string concat testing');
console.time("string obj testing");
for (let i = 0; i < 10000000; i++) {
bar = String(foo);
}
console.timeEnd("string obj testing");
console.time("string both");
for (let i = 0; i < 10000000; i++) {
bar = "" + foo + "";
}
console.timeEnd("string both");
并得到以下结果:
❯ node testing.js
string concat testing: 2802.542ms
string obj testing: 3374.530ms
string both: 2660.023ms
每次运行的时间都差不多。
如果需要将结果格式化为特定的小数位数,例如表示货币,则需要类似toFixed()方法的东西。
number.toFixed( [digits] )
数字是小数点后要显示的位数。
我喜欢前两个,因为它们更容易阅读。我倾向于使用String(n),但这只是一个风格问题。
除非你有一行
var n = 5;
console.log ("the number is: " + n);
这不言自明吗
其他答案已经涵盖了其他选项,但我更喜欢这个:
s = `${n}`
简短,简洁,已经在许多其他地方使用过(如果您使用的是现代框架/ ES版本),所以任何程序员都能理解它。
这(通常)不是很重要,但与其他方法相比,它似乎也是最快的方法之一。
我认为这取决于情况,但无论如何你可以使用. tostring()方法,因为它很容易理解。