Symbol() Konstruktor
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Die Symbol()
Funktion gibt primitive Werte vom Typ Symbol zurück.
Probieren Sie es aus
Syntax
Parameter
description
Optional-
Ein String. Eine Beschreibung des Symbols, die zum Debuggen verwendet werden kann, aber nicht, um auf das Symbol selbst zuzugreifen.
Beispiele
Symbole erstellen
Um ein neues primitives Symbol zu erstellen, schreiben Sie Symbol()
mit einem optionalen
String als Beschreibung:
const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");
Der obige Code erstellt drei neue Symbole. Beachten Sie, dass Symbol("foo")
den String "foo"
nicht in ein Symbol umwandelt. Es erstellt jedes Mal ein neues Symbol:
Symbol("foo") === Symbol("foo"); // false
new Symbol()
Die folgende Syntax mit dem new
Operator wird einen
TypeError
werfen:
const sym = new Symbol(); // TypeError
Dies verhindert, dass Autoren ein explizites Symbol
-Wrapper-Objekt anstelle eines neuen Symbolwerts erstellen, und könnte überraschend sein, da das Erstellen expliziter Wrapper-Objekte um primitive Datentypen im Allgemeinen möglich ist (zum Beispiel new Boolean
, new String
und new Number
).
Wenn Sie wirklich ein Symbol
-Wrapper-Objekt erstellen möchten, können Sie die
Object()
-Funktion verwenden:
const sym = Symbol("foo");
const symObj = Object(sym);
typeof sym; // "symbol"
typeof symObj; // "object"
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-symbol-constructor |
Browser-Kompatibilität
BCD tables only load in the browser