Temporal.PlainDate.prototype.valueOf()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die valueOf()-Methode von Instanzen von Temporal.PlainDate wirft einen TypeError, was verhindert, dass Temporal.PlainDate-Instanzen implizit in Primitive umgewandelt werden, wenn sie in arithmetischen oder Vergleichsoperationen verwendet werden.
Syntax
valueOf()
Parameter
Keine.
Rückgabewert
Keine.
Ausnahmen
TypeError-
Wird immer ausgelöst.
Beschreibung
Da sowohl primitive Umwandlung als auch Zahlenumwandlung valueOf() vor toString() aufrufen, würde, falls valueOf() fehlt, ein Ausdruck wie date1 > date2 diese implizit als Zeichenfolgen vergleichen, was zu unerwarteten Ergebnissen führen kann. Indem ein TypeError geworfen wird, verhindern Temporal.PlainDate-Instanzen solche impliziten Umwandlungen. Sie müssen diese ausdrücklich in Zeichenfolgen umwandeln, indem Sie Temporal.PlainDate.prototype.toString() verwenden, oder die Temporal.PlainDate.compare()-statische Methode nutzen, um sie zu vergleichen.
Beispiele
>Arithmetische und Vergleichsoperationen auf Temporal.PlainDate
Alle arithmetischen und Vergleichsoperationen auf Temporal.PlainDate-Instanzen sollten die dedizierten Methoden verwenden oder sie ausdrücklich in Primitive umwandeln.
const date1 = Temporal.PlainDate.from("2022-01-01");
const date2 = Temporal.PlainDate.from("2022-07-01");
date1 > date2; // TypeError: can't convert PlainDate to primitive type
Temporal.PlainDate.compare(date1, date2); // -1
date2 - date1; // TypeError: can't convert PlainDate to primitive type
date2.since(date1).toString(); // "P181D"
Spezifikationen
| Specification |
|---|
| Temporal> # sec-temporal.plaindate.prototype.valueof> |
Browser-Kompatibilität
Loading…