ECMA-262 第 9 版、2018年6月(JavaScriptが準拠することを意図した標準)は、6.1.6の「数値タイプ」で次のように述べています。
… IEEE標準の9007199254740990(つまり、2 53 -2)の個別の「Not-a-Number」値は、ECMAScriptで単一の特別なNaN値として表されます。…一部の実装では、外部コードが違いを検出できる場合がありますさまざまなNot-a-Number値の間。ただし、そのような動作は実装に依存します。ECMAScriptコードでは、すべてのNaN値は互いに区別できません。
24.1.17“ NumberToRawBytes(type、value、isLittleEndian)”は言う:
…値がNaNの場合、rawBytesは、IEEE 754-2008のbinary64形式のNot-a-Numberエンコーディングで選択された実装に設定できます。実装では、実装ごとに区別可能なNaN値に常に同じエンコーディングを選択する必要があります。…
この質問に光を当てているNaNについて言及している他の箇所はありません。一方、24.1.17は、NaNをrawバイトに変換するときに、NaNのビットを保持する必要があることを効率的に通知します。ただし、他の操作でビットを保持する必要があることを示すものは他にありません。24.1.17のこの要件は、ビットが他の操作によって任意に変更される可能性がある場合、目的を果たさないため、これが意図であると推測する場合があります。しかし、JavaScriptの実装に依存して、その意図に従ってこれを実装したことはありません。