このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
String() コンストラクター
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
String コンストラクターは新しいString オブジェクトを生成します。関数として呼び出された場合は、文字列型のプリミティブ値を返します。
In this article
構文
new String(thing)String(thing)引数
thing文字列に変換するもの。
返値
String() が関数として(new なしで)呼び出された場合、value が文字列プリミティブに変換されたものを返します。特に、シンボル値は、例外を発生させるのではなく、"Symbol(description)" に変換されます。ここで、description は、このシンボルのの説明です。
String がコンストラクターとして(new 付きで)呼び出された場合、value を(シンボルの特別扱いなしで)文字列プリミティブに変換し、String オブジェクトでラップして返します。これはプリミティブではありません。
警告:String をコンストラクターとして使用する場面はほとんど見つからないでしょう。
例
>String コンストラクターと String 関数
String 関数と String コンストラクターは異なる結果を生み出します。
const a = new String("Hello world"); // a === "Hello world" is falseconst b = String("Hello world"); // b === "Hello world" is truea instanceof String; // is trueb instanceof String; // is falsetypeof a; // "object"typeof b; // "string"ここでは、この関数は約束通り(プリミティブ型の)文字列を生成します。しかし、コンストラクターは String 型(オブジェクトのラッパー)のインスタンスを生成しますので、 String コンストラクターを使用するのは稀だといえます。
String() を用いてシンボルを文字列化
String() はシンボルを文字列に例外を発生させることなく変換することができる唯一の方法です。とても明示的だからです。
const sym = Symbol("example");`${sym}`; // TypeError: Cannot convert a Symbol value to a string"" + sym; // TypeError: Cannot convert a Symbol value to a string"".concat(sym); // TypeError: Cannot convert a Symbol value to a stringconst sym = Symbol("example");String(sym); // "Symbol(example)"仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string-constructor> |
ブラウザーの互換性
関連情報
- 数値と文字列ガイド