Temporal.PlainDateTime.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 Temporal.PlainDateTime-Instanzen wirft einen TypeError, der verhindert, dass Temporal.PlainDateTime-Instanzen implizit in primitive Werte 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 die primitive Umwandlung als auch die Zahlenumwandlung valueOf() vor toString() aufrufen, würde, falls valueOf() nicht vorhanden ist, ein Ausdruck wie dateTime1 > dateTime2 sie implizit als Zeichenketten vergleichen, was zu unerwarteten Ergebnissen führen könnte. Durch das Auslösen eines TypeError verhindern Temporal.PlainDateTime-Instanzen solche impliziten Umwandlungen. Es ist erforderlich, sie explizit als Zeichenketten zu konvertieren, indem Temporal.PlainDateTime.prototype.toString() verwendet wird, oder die Temporal.PlainDateTime.compare()-statische Methode zu benutzen, um sie zu vergleichen.
Beispiele
>Arithmetische und Vergleichsoperationen auf Temporal.PlainDateTime
Alle arithmetischen und Vergleichsoperationen auf Temporal.PlainDateTime-Instanzen sollten die spezifischen Methoden verwenden oder sie explizit in primitive Werte umwandeln.
const dt1 = Temporal.PlainDateTime.from("2022-01-01T00:00:00");
const dt2 = Temporal.PlainDateTime.from("2022-07-01T00:00:00");
dt1 > dt2; // TypeError: can't convert PlainDateTime to primitive type
Temporal.PlainDateTime.compare(dt1, dt2); // -1
dt2 - dt1; // TypeError: can't convert PlainDateTime to primitive type
dt2.since(dt1).toString(); // "P181D"
Spezifikationen
| Specification |
|---|
| Temporal> # sec-temporal.plaindatetime.prototype.valueof> |
Browser-Kompatibilität
Loading…