Temporal.PlainMonthDay.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 des Objekts Temporal.PlainMonthDay
löst einen TypeError
aus, was verhindert, dass Temporal.PlainMonthDay
-Instanzen bei arithmetischen oder Vergleichsoperationen implizit in primitive Typen umgewandelt 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 ein Ausdruck wie monthDay1 > monthDay2
die Objekte implizit als Strings vergleichen, wenn valueOf()
nicht vorhanden wäre, was zu unerwarteten Ergebnissen führen kann. Durch das Auslösen eines TypeError
verhindern Temporal.PlainMonthDay
-Instanzen solche impliziten Umwandlungen. Sie müssen sie explizit in Strings umwandeln, indem Sie Temporal.PlainMonthDay.prototype.toString()
verwenden.
Beispiele
Arithmetische und Vergleichsoperationen auf Temporal.PlainMonthDay
Alle arithmetischen und Vergleichsoperationen auf Temporal.PlainMonthDay
-Instanzen sollten die dafür vorgesehenen Methoden verwenden oder sie explizit in primitive Typen umwandeln.
const md1 = Temporal.PlainMonthDay.from("01-01");
const md2 = Temporal.PlainMonthDay.from("07-01");
md1 > md2; // TypeError: can't convert PlainMonthDay to primitive type
Temporal.PlainDate.compare(
md1.toPlainDate({ year: 2021 }),
md2.toPlainDate({ year: 2021 }),
); // -1
md2 - md1; // TypeError: can't convert PlainMonthDay to primitive type
md2
.toPlainDate({ year: 2021 })
.since(md1.toPlainDate({ year: 2021 }))
.toString(); // "P181D"
Spezifikationen
Specification |
---|
Temporal proposal # sec-temporal.plainmonthday.prototype.valueof |
Browser-Kompatibilität
BCD tables only load in the browser