转化为字符串

js/to_string2026-10-29 11:03:47

转化为字符串的规则

许多内置操作首先将它们的参数转换为字符串(这就是为什么 String 对象的行为类似于字符串原始值的原因)。这些操作可以总结为以下几点:

  • 字符串按原样返回。
  • undefined 转换成 "undefined"。
  • null 转换成 "null"。
  • true 转换成 "true";false 转换成 "false"。
  • 数字使用与 toString(10) 相同的算法转换。
  • BigInt 使用与 toString(10) 相同的算法转换。
  • Symbol 抛出 TypeError。
  • 对于对象,首先,通过依次调用其 [Symbol.toPrimitive]()(hint 为 "string")、toString() 和 valueOf() 方法将其转换为原始值。然后将生成的原始值转换为一个字符串。

转化为字符串的操作

有几种方法可以在 JavaScript 中实现几乎相同的效果。

  • 模板字符串:`${x}` 为嵌入的表达式执行上面的字符串强制转换步骤。
  • String() 函数:String(x) 使用相同的算法去转换 x,只是 Symbol 不会抛出 TypeError,而是返回 "Symbol(description)",其中 description 是对 Symbol 的描述。
  • 使用 + 运算符:"" + x 将其操作数强制转为原始值,而不是字符串,并且对于某些对象,其行为与普通字符串强制转换完全不同。

根据情况,推荐使用 `${x}`(模拟内置行为)或 String(x)(处理 symbol 值而不抛出错误),但不推荐使用 "" + x。

本页目录