Documentación offline JavaScript main

Temporal.PlainMonthDay.prototype.valueOf()

main Documentación oficial Licencia CC-BY-SA-2.5Descargado el 2026-08-02

En esta página

The valueOf() method of {{jsxref("Temporal.PlainMonthDay")}} instances throws a {{jsxref("TypeError")}}, which prevents Temporal.PlainMonthDay instances from being implicitly converted to primitives when used in arithmetic or comparison operations.

Syntax#

valueOf()

Parameters#

None.

Return value#

None.

Exceptions#

  • {{jsxref("TypeError")}}
  • : Always thrown.

Description#

Because both primitive conversion and number conversion call valueOf() before toString(), if valueOf() is absent, then an expression like monthDay1 > monthDay2 would implicitly compare them as strings, which may have unexpected results. By throwing a TypeError, Temporal.PlainMonthDay instances prevent such implicit conversions. You need to explicitly convert them to strings using {{jsxref("Temporal/PlainMonthDay/toString", "Temporal.PlainMonthDay.prototype.toString()")}}.

Examples#

Arithmetic and comparison operations on Temporal.PlainMonthDay#

All arithmetic and comparison operations on Temporal.PlainMonthDay instances should use the dedicated methods or convert them to primitives explicitly.

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"

Specifications#

{{Specifications}}

Browser compatibility#

{{Compat}}

See also#

  • {{jsxref("Temporal.PlainMonthDay")}}
  • {{jsxref("Temporal/PlainMonthDay/toString", "Temporal.PlainMonthDay.prototype.toString()")}}
  • {{jsxref("Temporal/PlainMonthDay/toJSON", "Temporal.PlainMonthDay.prototype.toJSON()")}}
  • {{jsxref("Temporal/PlainMonthDay/toLocaleString", "Temporal.PlainMonthDay.prototype.toLocaleString()")}}