Temporal.Duration.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.Duration
-Instanzen wirft einen TypeError
, um zu verhindern, dass Temporal.Duration
-Instanzen implizit in primitive Werte umgewandelt werden, wenn sie in arithmetischen oder Vergleichsoperationen verwendet werden.
Syntax
valueOf()
Parameter
Keine.
Rückgabewert
Keiner.
Ausnahmen
TypeError
-
Wird immer geworfen.
Beschreibung
Da sowohl primitive Umwandlung als auch Zahlenumwandlung valueOf()
vor toString()
aufrufen, würde, falls valueOf()
fehlt, ein Ausdruck wie duration1 > duration2
sie implizit als Strings vergleichen, was unerwartete Ergebnisse wie "PT3S" > "PT1M"
haben könnte. Durch das Werfen eines TypeError
verhindern Temporal.Duration
-Instanzen solche impliziten Umwandlungen. Sie müssen sie explizit in Zahlen umwandeln, indem Sie Temporal.Duration.prototype.total()
verwenden, oder die Temporal.Duration.compare()
-statische Methode verwenden, um sie zu vergleichen.
Beispiele
Arithmetische und Vergleichsoperationen auf Temporal.Duration
Alle arithmetischen und Vergleichsoperationen auf Temporal.Duration
-Instanzen sollten die dafür vorgesehenen Methoden verwenden oder sie explizit in primitive Werte umwandeln.
const duration1 = Temporal.Duration.from({ seconds: 3 });
const duration2 = Temporal.Duration.from({ minutes: 1 });
duration1 > duration2; // TypeError: can't convert Duration to primitive type
duration1.total("seconds") > duration2.total("seconds"); // false
Temporal.Duration.compare(duration1, duration2); // -1
duration1 + duration2; // TypeError: can't convert Duration to primitive type
duration1.total("seconds") + duration2.total("seconds"); // 63
duration1.add(duration2).toString(); // "PT1M3S"
Spezifikationen
Specification |
---|
Temporal # sec-temporal.duration.prototype.valueof |