Temporal.PlainYearMonth.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.PlainYearMonth
-Instanzen löst einen TypeError
aus, was verhindert, dass Temporal.PlainYearMonth
-Instanzen bei Verwendung in arithmetischen oder Vergleichsoperationen implizit in Primitive konvertiert werden.
Syntax
valueOf()
Parameter
Keine.
Rückgabewert
Keiner.
Ausnahmen
TypeError
-
Wird immer ausgelöst.
Beschreibung
Da sowohl die Primitive Konvertierung als auch die Zahlenkonvertierung valueOf()
vor toString()
aufrufen, würden ohne valueOf()
Ausdrücke wie yearMonth1 > yearMonth2
die Objekte implizit als Strings vergleichen, was unerwartete Ergebnisse haben könnte. Indem ein TypeError
ausgelöst wird, verhindern Temporal.PlainYearMonth
-Instanzen solche impliziten Konvertierungen. Sie müssen sie explizit mithilfe von Temporal.PlainYearMonth.prototype.toString()
in Strings konvertieren oder die statische Methode Temporal.PlainYearMonth.compare()
verwenden, um sie zu vergleichen.
Beispiele
>Arithmetische und Vergleichsoperationen auf Temporal.PlainYearMonth
Alle arithmetischen und Vergleichsoperationen auf Temporal.PlainYearMonth
-Instanzen sollten die dedizierten Methoden verwenden oder diese explizit in Primitive konvertieren.
const ym1 = Temporal.PlainYearMonth.from("2021-01");
const ym2 = Temporal.PlainYearMonth.from("2021-07");
ym1 > ym2; // TypeError: can't convert PlainYearMonth to primitive type
Temporal.PlainYearMonth.compare(ym1, ym2); // -1
ym2 - ym1; // TypeError: can't convert PlainYearMonth to primitive type
ym2.since(ym1).toString(); // "P6M"
Spezifikationen
Specification |
---|
Temporal> # sec-temporal.plainyearmonth.prototype.valueof> |
Browser-Kompatibilität
Loading…