String.prototype.toString()

toString() メソッドは指定されたオブジェクトを表す文字列を返します。

試してみましょう

構文

js
toString()

返値

呼び出したオブジェクトを表す文字列です。

詳細

その String オブジェクトは、ObjecttoString メソッドを上書きします。つまり、Object.prototype.toString() を継承しません。String オブジェクトの toString メソッドは、そのオブジェクトを表す文字列を返します(String.prototype.valueOf() と同等です)。

toString() メソッドは this 値が String プリミティブまたはラッパーオブジェクトであることを要求します。他の this の値に対しては、文字列値に変換しようとせずに TypeError を発生します。

String には [@@toPrimitive]() メソッドがないため、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"

仕様書

Specification
ECMAScript Language Specification
# sec-string.prototype.tostring

ブラウザーの互換性

BCD tables only load in the browser

関連情報