Baseline Widely available
Die Symbol()
Funktion gibt primitive Werte des Typs Symbol zurück.
const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol("foo");
console.log(typeof symbol1);
// Expected output: "symbol"
console.log(symbol2 === 42);
// Expected output: false
console.log(symbol3.toString());
// Expected output: "Symbol(foo)"
console.log(Symbol("foo") === Symbol("foo"));
// Expected output: false
Syntax
Symbol()
Symbol(description)
Hinweis: Symbol()
kann nur ohne new
aufgerufen werden. Der Versuch, es mit new
zu konstruieren, wirft einen TypeError
.
description
Optional
Ein String. Eine Beschreibung des Symbols, die zum Debuggen verwendet werden kann, aber nicht, um auf das Symbol selbst zuzugreifen.
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 wird jedes Mal ein neues Symbol erstellt:
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 Browser-Kompatibilität Siehe auch MDN-Feedback-Box War diese Ãbersetzung hilfreich?
Diese Seite wurde automatisch aus dem Englischen übersetzt.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4