String.prototype.toString()
String 值的 toString() 方法返回该字符串值。
试一试
const stringObj = new String("foo");
console.log(stringObj);
// Expected output: String { "foo" }
console.log(stringObj.toString());
// Expected output: "foo"
语法
js
toString()
参数
无。
返回值
表示指定字符串值的字符串。
描述
String 对象覆盖了 Object 的 toString 方法;它不继承 Object.prototype.toString()。对于 String 值,toString 方法返回字符串本身(如果是原始值)或 String 对象包装的字符串。它的实现与 String.prototype.valueOf() 完全相同。
toString() 方法要求其 this 值是一个 String 原始值或包装对象。对于其他 this 值,它会抛出 TypeError,而不尝试将其强制转换为字符串值。
由于 String 没有 [Symbol.toPrimitive]() 方法,当 String 对象用于需要字符串的上下文(例如在 模板字面量 中)时,JavaScript 会自动调用 toString() 方法。然而,String 原始值在被强制转换为字符串时,并不会调用 toString() 方法——因为它们已经是字符串,所以不会执行任何转换。
js
String.prototype.toString = () => "Overridden";
console.log(`${"foo"}`); // "foo"
console.log(`${new String("foo")}`); // "Overridden"
示例
使用 toString()
以下示例显示了一个 String 对象的字符串值
js
const x = new String("Hello world");
console.log(x.toString()); // "Hello world"
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-string.prototype.tostring |
浏览器兼容性
加载中…