Spec-Zone.ru › JavaScript

Temporal.Duration.prototype.valueOf()

Базовый уровень Ограниченная доступность

Эта функция не относится к базовому уровню, поскольку она не работает в некоторых из наиболее широко используемых браузеров.

Метод valueOf() экземпляров Temporal.Duration вызывает TypeError, что предотвращает неявное преобразование в примитивы экземпляров Temporal.Duration при использовании в арифметических операциях или операциях сравнения.

Синтаксис

valueOf()

Параметры

Нет.

Возвращаемое значение

Нет.

Исключения

TypeError
Всегда вызывается.

Описание

Поскольку и преобразование в примитив, и преобразование в число вызывают valueOf() до toString(), если valueOf() отсутствует, то выражение, подобное duration1 > duration2, неявно сравнивало бы их как строки, что может привести к неожиданным результатам, например, "PT3S" > "PT1M". Вызывая TypeError, экземпляры Temporal.Duration предотвращают такие неявные преобразования. Вам необходимо явно преобразовать их в числа, используя Temporal.Duration.prototype.total(), или использовать статический метод Temporal.Duration.compare() для их сравнения.

Примеры

Арифметические операции и операции сравнения для Temporal.Duration

Все арифметические операции и операции сравнения для экземпляров Temporal.Duration должны использовать специальные методы или явно преобразовывать их в примитивы.

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"

Спецификации

Спецификация
Temporal
# sec-temporal.duration.prototype.valueof

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
valueOf
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0

Смотрите также

  • Temporal.Duration
  • Temporal.Duration.prototype.toString()
  • Temporal.Duration.prototype.toJSON()
  • Temporal.Duration.prototype.toLocaleString()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Duration/valueOf

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API