Temporal.PlainYearMonth.prototype.valueOf()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Phương thức valueOf() của các instance Temporal.PlainYearMonth ném ra TypeError, ngăn các instance Temporal.PlainYearMonth bị chuyển đổi ngầm định thành kiểu nguyên thủy khi được sử dụng trong các phép toán số học hoặc so sánh.

Cú pháp

js
valueOf()

Tham số

Không có.

Giá trị trả về

Không có.

Ngoại lệ

TypeError

Luôn luôn được ném ra.

Mô tả

Vì cả chuyển đổi nguyên thủychuyển đổi số đều gọi valueOf() trước toString(), nếu valueOf() không tồn tại, thì một biểu thức như yearMonth1 > yearMonth2 sẽ ngầm định so sánh chúng dưới dạng chuỗi, điều này có thể cho ra kết quả không mong muốn. Bằng cách ném ra TypeError, các instance Temporal.PlainYearMonth ngăn chặn các chuyển đổi ngầm định như vậy. Bạn cần chuyển đổi chúng thành chuỗi một cách tường minh bằng Temporal.PlainYearMonth.prototype.toString(), hoặc sử dụng phương thức tĩnh Temporal.PlainYearMonth.compare() để so sánh chúng.

Ví dụ

Các phép toán số học và so sánh trên Temporal.PlainYearMonth

Tất cả các phép toán số học và so sánh trên các instance Temporal.PlainYearMonth nên sử dụng các phương thức chuyên dụng hoặc chuyển đổi chúng thành kiểu nguyên thủy một cách tường minh.

js
const ym1 = Temporal.PlainYearMonth.from("2021-01");
const ym2 = Temporal.PlainYearMonth.from("2021-07");
ym1 > ym2; // TypeError: can't convert PlainYearMonth to primitive type
Temporal.PlainYearMonth.compare(ym1, ym2); // -1

ym2 - ym1; // TypeError: can't convert PlainYearMonth to primitive type
ym2.since(ym1).toString(); // "P6M"

Đặc tả kỹ thuật

Specification
Temporal
# sec-temporal.plainyearmonth.prototype.valueof

Khả năng tương thích với trình duyệt

Xem thêm