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
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ủy và chuyể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.
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> |