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 repräsentiert. Dieser Wert kann entweder ein String oder eine Zahl sein, abhängig vom übergebenen 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
date[Symbol.toPrimitive](hint)
Parameter
hint
-
Ein String, der den Typ des zurückzugebenden primitiven Wertes angibt. 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
Falls hint
"string"
oder "default"
ist, gibt diese Methode einen String zurück, indem der this
Wert in einen String umgewandelt wird (zuerst wird toString()
versucht, dann valueOf()
).
Falls hint
"number"
ist, gibt diese Methode eine Zahl zurück, indem der this
Wert in eine Zahl umgewandelt wird (zuerst wird valueOf()
versucht, dann toString()
).
Ausnahmen
TypeError
-
Wird ausgelöst, wenn das
hint
Argument keiner der drei gültigen Werte ist.
Beschreibung
Die [Symbol.toPrimitive]()
Methode ist Teil des Datentyp-Umwandlungsprotokolls. JavaScript ruft immer die [Symbol.toPrimitive]()
Methode vorrangig auf, um ein Objekt in einen primitiven Wert zu konvertieren. Es ist selten notwendig, die [Symbol.toPrimitive]()
Methode selbst aufzurufen; JavaScript ruft sie automatisch auf, wenn ein Objekt erwartet wird, das in einen primitiven Wert umgewandelt werden soll.
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 standardmäßigen Datentyp-Umwandlungsprozess zu überschreiben und einen String statt einer Zahl zurückzugeben, da der Umwandlungsprozess 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) zurück, anstatt 1
(eine Zahl).
Beispiele
Verwendung von [Symbol.toPrimitive]()
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® 2025 Language Specification # sec-date.prototype-%symbol.toprimitive% |