Temporal.PlainDate.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.PlainDate ném ra một TypeError, nhằm ngăn các instance Temporal.PlainDate bị chuyển đổi ngầm 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 đượ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() vắng mặt, thì một biểu thức như date1 > date2 sẽ ngầm so sánh chúng dưới dạng chuỗi, điều này có thể cho kết quả ngoài mong đợi. Bằng cách ném ra TypeError, các instance Temporal.PlainDate ngăn chặn các chuyển đổi ngầm như vậy. Bạn cần phải chuyển đổi chúng rõ ràng thành chuỗi bằng Temporal.PlainDate.prototype.toString(), hoặc sử dụng phương thức tĩnh Temporal.PlainDate.compare() để so sánh chúng.
Ví dụ
>Các phép toán số học và so sánh trên Temporal.PlainDate
Tất cả các phép toán số học và so sánh trên các instance Temporal.PlainDate phải 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 rõ ràng.
const date1 = Temporal.PlainDate.from("2022-01-01");
const date2 = Temporal.PlainDate.from("2022-07-01");
date1 > date2; // TypeError: can't convert PlainDate to primitive type
Temporal.PlainDate.compare(date1, date2); // -1
date2 - date1; // TypeError: can't convert PlainDate to primitive type
date2.since(date1).toString(); // "P181D"
Đặc tả
| Specification |
|---|
| Temporal> # sec-temporal.plaindate.prototype.valueof> |