ECMA-262 Phiên bản thứ 9 , tháng 6 năm 2018, (tiêu chuẩn mà JavaScript dự định tuân thủ) cho biết, trong 6.1.6.
Giá trị 9007199254740990 (nghĩa là 2 53 -2) khác biệt Các giá trị không phải là số một của các tiêu chuẩn IEEE được biểu thị trong ECMAScript dưới dạng một giá trị NaN đặc biệt duy nhất. giữa các giá trị Not-a-Number khác nhau, nhưng hành vi đó phụ thuộc vào việc triển khai; đối với mã ECMAScript, tất cả các giá trị NaN không thể phân biệt được với nhau.
24.1.17 Số NumberToRawBytes (loại, giá trị, isLittleEndian), nói:
Nếu giá trị là NaN, rawBytes có thể được đặt thành bất kỳ triển khai nào được chọn theo định dạng nhị phân IEEE 754-2008, mã hóa Not-a-Number. Việc triển khai phải luôn luôn chọn cùng một mã hóa cho mỗi giá trị NaN có thể phân biệt được.
Tôi không thấy bất kỳ đoạn nào khác đề cập đến NaN đang chiếu sáng câu hỏi này. Một mặt, 24.1.17 cho chúng ta biết một cách hiệu quả các bit của NaN phải được bảo toàn khi chuyển đổi NaN thành byte thô. Tuy nhiên, không có gì khác xuất hiện để cho chúng ta biết các bit phải được bảo toàn trong các hoạt động khác. Người ta có thể suy luận rằng đây là ý định, bởi vì yêu cầu này trong 24.1.17 sẽ không phục vụ mục đích nếu các bit có thể được thay đổi tùy ý bởi bất kỳ hoạt động nào khác. Nhưng tôi sẽ không dựa vào các triển khai JavaScript để thực hiện điều này phù hợp với mục đích đó.