`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, gibt er primitive Werte vom Typ String zurück.

Syntax

js
new String(thing)
String(thing)

Note: String() kann mit oder ohne new aufgerufen werden, hat jedoch unterschiedliche Effekte. Siehe Rückgabewert.

Parameter

thing

Alles, was in eine Zeichenkette umgewandelt werden soll.

Rückgabewert

Wenn String() als Funktion (ohne new) aufgerufen wird, gibt es den value in einen primitiven Zeichenkettentyp gezwungen zurück. Insbesondere werden Symbol Werte in "Symbol(description)" umgewandelt, wobei description die Beschreibung des Symbols ist, anstatt eine Ausnahme zu werfen.

Wenn String() als Konstruktor (mit new) aufgerufen wird, wird value in einen primitiven Zeichenkettentyp gezwungen (ohne spezielle Symbolbehandlung) und ein umhüllendes String Objekt zurückgegeben, das kein primitiver Typ ist.

Warnung: Sie sollten selten den String als Konstruktor verwenden.

Beispiele

String-Konstruktor und String-Funktion

Die String-Funktion und der String-Konstruktor liefern 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 produziert die Funktion eine Zeichenkette (den primitiven Typ), wie versprochen. Der Konstruktor dagegen erzeugt eine Instanz vom Typ String (ein Objekt-Wrapper), und deshalb sollten Sie den String-Konstruktor selten verwenden.

Verwendung von String(), um ein Symbol zu stringifizieren

String() ist der einzige Fall, bei dem ein Symbol ohne Fehlermeldung in eine Zeichenkette umgewandelt werden kann, 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