A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive below:

Symbol.toPrimitive - JavaScript | MDN

Symbol.toPrimitive

Baseline Widely available

Die statische Dateneigenschaft Symbol.toPrimitive repräsentiert das bekannte Symbol Symbol.toPrimitive. Alle Typumwandlungs-Algorithmen suchen dieses Symbol in Objekten nach der Methode, die einen bevorzugten Typ akzeptiert und eine primitive Darstellung des Objekts zurückgibt, bevor sie auf die Verwendung der valueOf()- und toString()-Methoden des Objekts zurückfallen.

Probieren Sie es aus
const object = {
  [Symbol.toPrimitive](hint) {
    if (hint === "number") {
      return 42;
    }
    return null;
  },
};

console.log(+object);
// Expected output: 42
Wert

Das bekannte Symbol Symbol.toPrimitive.

Schreibbar nein Aufzählbar nein Konfigurierbar nein Beschreibung

Mit Hilfe der Symbol.toPrimitive-Eigenschaft (verwendet als Funktionswert) kann ein Objekt in einen primitiven Wert umgewandelt werden. Die Funktion wird mit einem String-Argument hint aufgerufen, das den bevorzugten Typ des resultierenden primitiven Werts angibt. Das hint-Argument kann eine der folgenden ist: "number", "string" und "default".

Der "number"-Hinweis wird von numerischen Umwandlungsalgorithmen verwendet. Der "string"-Hinweis wird vom String-Umwandlungsalgorithmus verwendet. Der "default"-Hinweis wird vom primitiven Umwandlungsalgorithmus verwendet. Der hint dient nur als schwaches Präferenzsignal, und die Implementierung kann ihn ignorieren (wie es Symbol.prototype[Symbol.toPrimitive]() tut). Die Sprache erzwingt keine Übereinstimmung zwischen dem hint und dem Ergebnistyp, obwohl [Symbol.toPrimitive]() ein primitiver Wert zurückgeben muss, oder ein TypeError wird ausgelöst.

Objekte ohne die [Symbol.toPrimitive]-Eigenschaft werden in primitive Werte umgewandelt, indem die Methoden valueOf() und toString() in unterschiedlicher Reihenfolge aufgerufen werden, was im Abschnitt über Typumwandlung ausführlicher erklärt wird. [Symbol.toPrimitive]() ermöglicht die vollständige Kontrolle über den Umwandlungsprozess in primitive Werte. Zum Beispiel behandelt Date.prototype[Symbol.toPrimitive]() "default" so, als wäre es "string" und ruft toString() statt valueOf() auf. Symbol.prototype[Symbol.toPrimitive]() ignoriert den Hinweis und gibt immer ein Symbol zurück, was bedeutet, dass auch in String-Kontexten Symbol.prototype.toString() nicht aufgerufen wird, und Symbol-Objekte müssen immer explizit über String() in Strings umgewandelt werden.

Beispiele Modifizieren primitiver Werte, die aus einem Objekt umgewandelt wurden

Das folgende Beispiel beschreibt, wie die Symbol.toPrimitive-Eigenschaft den primitiven Wert, der aus einem Objekt umgewandelt wurde, modifizieren kann.

// An object without Symbol.toPrimitive property.
const obj1 = {};
console.log(+obj1); // NaN
console.log(`${obj1}`); // "[object Object]"
console.log(obj1 + ""); // "[object Object]"

// An object with Symbol.toPrimitive property.
const obj2 = {
  [Symbol.toPrimitive](hint) {
    if (hint === "number") {
      return 10;
    }
    if (hint === "string") {
      return "hello";
    }
    return true;
  },
};
console.log(+obj2); // 10        — hint is "number"
console.log(`${obj2}`); // "hello"   — hint is "string"
console.log(obj2 + ""); // "true"    — hint is "default"
Spezifikationen Browser-Kompatibilität Siehe auch

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