String() Konstruktor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Der String() Konstruktor erstellt String Objekte. Wenn er als Funktion aufgerufen wird, liefert er primitive Werte des Typs String zurück.

Syntax

js
new String(thing)
String(thing)

Note: String() kann mit oder ohne new aufgerufen werden, jedoch mit unterschiedlichen Effekten. Siehe Rückgabewert.

Parameter

thing

Beliebiges Objekt, das in einen String umgewandelt werden soll.

Rückgabewert

Wenn String() als Funktion (ohne new) aufgerufen wird, wird value in einen zum String-Primitiv gezwungenen Wert zurückgegeben. Insbesondere werden Symbol-Werte in "Symbol(description)" umgewandelt, wobei description die Beschreibung des Symbols ist, anstatt einen Fehler auszulösen.

Wenn String() als Konstruktor (mit new) aufgerufen wird, wird value in einen String-Primitiv gezwungen (ohne spezielle Symbolbehandlung) und ein umschließendes String Objekt zurückgegeben, das kein Primitiv ist.

Warnung: Sie sollten selten den String Konstruktor verwenden.

Beispiele

String Konstruktor und String Funktion

Die String-Funktion und der String-Konstruktor erzeugen unterschiedliche Ergebnisse:

js
const a = new String("Hello world"); // a === "Hello world" is false
const b = String("Hello world"); // b === "Hello world" is true
a instanceof String; // is true
b instanceof String; // is false
typeof a; // "object"
typeof b; // "string"

Hier erzeugt die Funktion wie versprochen einen String (den primitiven Typ). Der Konstruktor hingegen erzeugt eine Instanz des Typs String (ein Objekt-Wrapper) und daher sollten Sie den String-Konstruktor selten verwenden.

Verwendung von String() zur Stringifizierung eines Symbols

String() ist der einzige Fall, bei dem ein Symbol in einen String umgewandelt werden kann, ohne einen Fehler auszulösen, da es sehr explizit ist.

js
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 string
js
const sym = Symbol("example");
String(sym); // "Symbol(example)"

Spezifikationen

Specification
ECMAScript Language Specification
# sec-string-constructor

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch