ECMA-262 Edisi ke 9 , Juni 2018, (standar yang dimaksudkan untuk menyesuaikan JavaScript) mengatakan, dalam 6.1.6 "The Number Type":
… 9007199254740990 (yaitu, 2 53 -2) nilai “Not-a-Number” berbeda dari Standar IEEE diwakili dalam ECMAScript sebagai nilai NaN khusus tunggal ... Dalam beberapa implementasi, kode eksternal mungkin dapat mendeteksi perbedaan antara berbagai nilai Not-a-Number, tetapi perilaku tersebut bergantung pada implementasi; ke kode ECMAScript, semua nilai NaN tidak dapat dibedakan satu sama lain.
24.1.17 "NumberToRawBytes (tipe, nilai, isLittleEndian)" mengatakan:
... Jika nilainya NaN, rawBytes dapat diatur untuk implementasi apa pun yang dipilih IEEE 754-2008 format binary64, Not-a-Number encoding. Suatu implementasi harus selalu memilih pengkodean yang sama untuk setiap implementasi nilai NaN yang dapat dibedakan.…
Saya tidak melihat bagian-bagian lain yang menyebutkan NaN yang menerangi pertanyaan ini. Di satu sisi, 24.1.17 secara efektif memberi tahu kita bahwa bit NaN harus dipertahankan ketika mengubah NaN menjadi byte mentah. Namun, tidak ada hal lain yang memberi tahu kami bahwa bit harus disimpan dalam operasi lain. Orang mungkin menyimpulkan bahwa ini adalah maksudnya, karena persyaratan ini dalam 24.1.17 tidak akan berfungsi jika bit dapat diubah secara sewenang-wenang oleh operasi lainnya. Tapi saya tidak akan bergantung pada implementasi JavaScript untuk mengimplementasikan ini sesuai dengan maksud itu.