Date.prototype[Symbol.toPrimitive]()

Baseline Widely available

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

Die Methode [Symbol.toPrimitive]() von Date-Instanzen gibt einen primitiven Wert zurück, der dieses Datum darstellt. Es kann entweder ein String oder eine Zahl sein, abhängig vom gegebenen Hinweis.

Probieren Sie es aus

// Depending on timezone, your results will vary
const date = new Date("20 December 2019 14:48");

console.log(date[Symbol.toPrimitive]("string"));
// Expected output: "Fri Dec 20 2019 14:48:00 GMT+0530 (India Standard Time)"

console.log(date[Symbol.toPrimitive]("number"));
// Expected output: 1576833480000

Syntax

js
date[Symbol.toPrimitive](hint)

Parameter

hint

Ein String, der den Typ des zurückzugebenden primitiven Wertes darstellt. Die folgenden Werte sind gültig:

  • "string" oder "default": Die Methode sollte einen String zurückgeben.
  • "number": Die Methode sollte eine Zahl zurückgeben.

Rückgabewert

Wenn hint "string" oder "default" ist, gibt diese Methode einen String zurück, indem der this-Wert zu einem String gezwungen wird (zuerst durch toString(), dann durch valueOf()).

Wenn hint "number" ist, gibt diese Methode eine Zahl zurück, indem der this-Wert zu einer Zahl gezwungen wird (zuerst durch valueOf(), dann durch toString()).

Ausnahmen

TypeError

Wird ausgelöst, wenn das hint-Argument nicht einer der drei gültigen Werte ist.

Beschreibung

Die Methode [Symbol.toPrimitive]() ist Teil des Typumwandlungsprotokolls. JavaScript ruft immer die Methode [Symbol.toPrimitive]() vorrangig auf, um ein Objekt in einen primitiven Wert zu konvertieren. Sie müssen die Methode [Symbol.toPrimitive]() selten selbst aufrufen; JavaScript ruft sie automatisch auf, wenn es auf ein Objekt stößt, wo ein primitiver Wert erwartet wird.

Die Methode [Symbol.toPrimitive]() des Date-Objekts gibt einen primitiven Wert zurück, indem entweder this.valueOf() aufgerufen und eine Zahl zurückgegeben wird, oder this.toString() aufgerufen und ein String zurückgegeben wird. Sie existiert, um den Standardprozess der primitiven Umwandlung zu überschreiben und stattdessen einen String zurückzugeben, da die primitive Umwandlung standardmäßig valueOf() vor toString() aufruft. Mit dem benutzerdefinierten [Symbol.toPrimitive](), gibt new Date(0) + 1 "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)1" (ein String) anstelle von 1 (eine Zahl) zurück.

Beispiele

Verwendung von [Symbol.toPrimitive]()

js
const d = new Date(0); // 1970-01-01T00:00:00.000Z

d[Symbol.toPrimitive]("string"); // "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)"
d[Symbol.toPrimitive]("number"); // 0
d[Symbol.toPrimitive]("default"); // "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)"

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-date.prototype-%symbol.toprimitive%

Browser-Kompatibilität

Siehe auch