用 JavaScript 把数字转换成字符串最好的方法是什么?

阅读时长 4 分钟读完

在前端开发中,我们常常需要将数字类型的数据转化为字符串类型,例如展示金额等需求。那么在 JavaScript 中,如何最好地实现这个转换呢?

方法一:Number.prototype.toString()

JavaScript 中的 Number 类型提供了一个原生的 toString() 方法,可以将数字转化为字符串。该方法接受一个可选参数 radix,表示要将数字表示成几进制,默认为十进制。

这种方式简单易懂,并且性能较高,适合于大部分场景。

方法二:String()

除了使用 Number 原型对象上的 toString() 方法,还可以使用全局的 String() 函数将数字转换为字符串。

这种方式看起来更像一种函数调用,但实际上也是一种类型转换。

方法三:模板字面量

ES6 引入了一种新的字符串表示法——模板字面量(template literals),即使用反引号(``)括起来的字符串。

在模板字面量中,可以直接使用 ${} 语法将变量嵌入到字符串中,而不需要进行显式转换。因此,可以轻松将数字转换为字符串。

这种方式简洁明了,可读性较高。

性能对比

我们可以通过 performance.now() 方法来测试以上三种方法的运行时间,并比较它们的性能。

-- -------------------- ---- -------
----- --- - ----------

----- -- - ------------------
--- ---- - - -- - - -------- ---- -
  ---------------
-
----- -- - ------------------
------------------------ ---- - --------

----- -- - ------------------
--- ---- - - -- - - -------- ---- -
  ------------
-
----- -- - ------------------
---------------------- ---- - --------

----- -- - ------------------
--- ---- - - -- - - -------- ---- -
  ---------
-
----- -- - ------------------
--------------------- --------- ---- - --------

在测试中,我们使用了一个大数字(123456789),并分别执行了上述三种方法一百万次。运行结果如下:

从测试结果可以看出,使用全局函数 String() 的性能最好,而模板字面量的性能最差。但是这些差距都非常小,在实际开发中无需过于担心性能问题。

总结

JavaScript 中将数字转化为字符串的方法有多种,其中使用 Number.prototype.toString() 和全局函数 String() 的性能最好,而模板字面量则更加简洁易懂。在实际应用中,可以根据具体需求选择不同的方法。

示例代码

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/8536

纠错
反馈