Temporal.PlainTime.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.PlainTime
-Instanzen löst einen TypeError
aus, was verhindert, dass Temporal.PlainTime
-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 ein Ausdruck wie time1 > time2
diese implizit als Strings vergleichen, falls valueOf()
nicht vorhanden ist, was zu unerwarteten Ergebnissen führen kann. Durch das Auslösen eines TypeError
verhindern Temporal.PlainTime
-Instanzen solche impliziten Umwandlungen. Sie müssen sie explizit in Strings umwandeln, indem Sie Temporal.PlainTime.prototype.toString()
, oder die statische Methode Temporal.PlainTime.compare()
verwenden, um sie zu vergleichen.
Beispiele
Arithmetische und Vergleichsoperationen auf Temporal.PlainTime
Alle arithmetischen und Vergleichsoperationen auf Temporal.PlainTime
-Instanzen sollten die dafür vorgesehenen Methoden verwenden oder sie explizit in primitive Werte umwandeln.
const time1 = Temporal.PlainTime.from("00:00:00");
const time2 = Temporal.PlainTime.from("12:00:00");
time1 > time2; // TypeError: can't convert PlainTime to primitive type
Temporal.PlainTime.compare(time1, time2); // -1
time2 - time1; // TypeError: can't convert PlainTime to primitive type
time2.since(time1).toString(); // "PT12H"
Spezifikationen
Specification |
---|
Temporal proposal # sec-temporal.plaintime.prototype.valueof |
Browser-Kompatibilität
BCD tables only load in the browser