为什么ECMA脚本不提供开箱即用的整数类型?

Why does ECMA script offer no integer type out of the box?

本文关键字:整数 类型 脚本 ECMA 为什么      更新时间:2023-09-26

我想知道为什么ECMA脚本不支持开箱即用的整数。当然,我知道有某种类型的整数(在这个问题的答案中有一个很好的总结:Javascript中浮点数和整型的区别?)。但这些仍然不是"实"整数。浮点数作为整型的问题非常多。那么,为什么它不支持整数,为什么ECMA脚本6没有解决这个问题?

该语言的设计和实现在10天内完成,所以它最初是一个时间限制的问题。来自马的嘴:

是的,它从一开始就在那里。但是,bignum是不可能的。JS必须看起来像java一样。更不可能的是,成为爪哇的蠢弟弟或人质助手。另外,我必须在十天内完成,否则会发生比JS更糟糕的事情。

所以默认是双精度,底层是int,位操作是32位int(如果使用>>>则是int)。这都怪Java。

我不知道为什么它不在ES2015的桌面上。对我来说,这似乎是很多工作,以消除样板,但我猜。Brendan Eich在Twitter上很活跃,你可以直接问他。:)

不能真正代表Harmony, Douglas Crockford说他们有兴趣在ES的未来版本中添加另一种数字类型。然而,他也说,增加一个新的数字类型是对语言的暴力,语言的简单性是可取的。

https://www.youtube.com/watch?v=V1_Y-KVhZ9Q

他基本上从13:52到26:00开始谈论"数字"