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 July 2015.

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

Probieren Sie es aus

Syntax

js
date[Symbol.toPrimitive](hint)

Parameter

hint

Ein String, der den Typ des zurückzugebenden primitiven Werts 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 sie den this-Wert in einen String umwandelt (zuerst toString() und dann valueOf() versucht).

Wenn hint "number" ist, gibt diese Methode eine Zahl zurück, indem sie den this-Wert in eine Zahl umwandelt (zuerst valueOf() und dann toString() versucht).

Ausnahmen

TypeError

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

Beschreibung

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

Die [Symbol.toPrimitive]() Methode des Date Objekts gibt einen primitiven Wert zurück, indem entweder this.valueOf() aufgerufen wird und eine Zahl zurückgegeben wird, oder this.toString() aufgerufen wird und ein String zurückgegeben wird. Sie existiert, um den Standardprozess der primitiven Umwandlung zu überschreiben, um einen String anstelle einer Zahl 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" (einen String) anstelle von 1 (einer 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 Language Specification
# sec-date.prototype-%symbol.toprimitive%

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch