gpt4 book ai didi

javascript - 所以我不能将 Infinity 作为数字放入 JSON 中,可以吗?

转载 作者:行者123 更新时间:2023-11-30 07:08:42 35 4
gpt4 key购买 nike

<分区>

我设法找到了一个 bug(也许不是 bug,但非常痛苦),它花了难以置信的长时间来追踪,并且可以使用 REPL (NodeJS) 复制它:

> o = {};
{}

> JSON.stringify(o)
'{}'

> o.n = 10
10

> JSON.stringify(o)
'{"n":10}'

> o.n = Infinity;
Infinity

> JSON.stringify(o)
'{"n":null}'

> null == Infinity
false

> null === Infinity
false

> typeof 10
'number'

> typeof Infinity
'number'

当您将 Infinity 放入 JSON 时,它变为 null,尽管 Infinity 是一个 number 类型。通常谁在乎,但是当 -InfinityNaN0Infinity 在上下文中都具有特殊含义时在您的应用程序(机器学习)中,能够将特殊数字作为纯 JSON 传输而无需每次都将其填充和取消填充到字符串中是非常重要的。

字符串填充需要对每次访问进行额外的类型检查,然后对所有特殊数字类型进行转换大小写字符串比较,然后重新分配到实际的特殊数字类型。一次还不错,每分钟 40 或 50 万亿次才是您真正开始诅咒 ECMA 之神的地方。

我是否遗漏了什么,或者这只是 ECMA 认为不那么重要的事情之一?

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com