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

一些例子:

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


当前回答

对于几乎所有可能的现有和未来情况(输入是number, null, undefined, Symbol,任何其他),唯一有效的解决方案是String(x)。不要使用3种方法进行简单的操作,基于值类型的假设,比如“这里我肯定将数字转换为字符串,这里肯定将布尔转换为字符串”。

解释:

String(x)处理空值,未定义,符号,[任何]和对象调用. tostring()。

+ x在x上调用. valueof()(转换为数字),在符号上抛出,可以提供依赖于实现的结果。

x.toString()抛出null和undefined。

注意:String(x)在没有原型的对象上仍然会失败,比如Object.create(null)。

如果你不喜欢'Hello, undefined'这样的字符串,或者想要支持无原型对象,请使用以下类型转换函数:

/**
 * Safely casts any value to string. Null and undefined are converted to ''.
 * @param  {*} value
 * @return {string}
 */
function string (str) {
  return value == null ? '' : (typeof value === 'object' && !value.toString ? '[object]' : String(value));
}

其他回答

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

number.toFixed( [digits] )

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

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

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

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

方法toFixed()也可以解决这个问题。

var n = 8.434332;
n.toFixed(2)  // 8.43

我喜欢前两个,因为它们更容易阅读。我倾向于使用String(n),但这只是一个风格问题。

除非你有一行

var n = 5;
console.log ("the number is: " + n);

这不言自明吗

下面是在JS中将Integer转换为String的方法。

这些方法按性能递减的顺序排列。

var num = 1

方法1:

num = `${num}`

方法2:

num = num + ''

方法3:

num = String(num)

方法4:

num = num.toString()

注意:你不能对一个数字直接调用toString()。2.toString()将抛出Uncaught SyntaxError:无效或意外令牌。

(性能测试结果由@DarckBlezzer在他的回答中给出)