Любая идея, почему JSON оставил NaN и +/- Infinity? Он помещает Javascript в странную ситуацию, когда объекты, которые в противном случае были бы сериализуемыми, не являются, если они содержат значения NaN или +/- бесконечности.
Похоже, что это было брошено в камень: см. RFC4627 и ECMA-262 (раздел 24.3.2, JSON.stringify, ПРИМЕЧАНИЕ 4, стр. 507 при последнем редактировании):
Конечные числа стробируются так, как если бы он вызывал
ToString(number)
. NaN и бесконечность независимо от знака представлены как строкаnull
.