More than 1 year has passed since last update.

JSONの仕様書を読んでるのですが、
IEEE 754で定義されている InfinityNaN はJSONでは表現できず、
例えば

JSON.stringify(Infinity) // => "null"
JSON.parse("Infinity") // => エラー

となるのですが、仕様をよく読むと数値の表現範囲は実装に依るということで、
1E400 などの大きい数値は正確に表現できない代わりに適宜丸めたりされるようです。

実際Chromeで動かして Infinity になることが確認されました。

JSON.parse("1E400") // => Infinity

なので、JSONでどうしても Infinity を表したいときは、JSONを扱う処理系に合わせて
馬鹿でかい数を入れることによって一応は表現できることになります。

ただ、このような手法で NaN を表現する方法は思いつきませんでした。

なお、もう1つIEEE 754で定義されている -0 は表現できるみたいです。

JSON.parse("-0") // => -0
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.