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

一些例子:

字符串(n) n.toString() “”+n n+“”


当前回答

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

其他回答

你可以调用Number对象,然后调用toString()。

号码。调用(null, n) .toString ()

你可以将这个技巧用于其他javascript原生对象。

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

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

开玩笑的意味很明显:

var harshNum = 108;
"".split.call(harshNum,"").join("");

或者在ES6中,你可以简单地使用模板字符串:

var harshNum = 108;
`${harshNum}`;

如果你好奇哪一个是性能最好的,看看我比较了所有不同的Number ->字符串转换。

看起来2+"或2+""是最快的。

https://jsperf.com/int-2-string

如果需要将结果格式化为特定的小数位数,例如表示货币,则需要类似toFixed()方法的东西。

number.toFixed( [digits] )

数字是小数点后要显示的位数。