4

我对 32 位浏览器中 javascript 数字的大小有点困惑。它仍然表示为最大值为 2^53 的 64 位数字吗?

4

3 回答 3

8

答案再错误不过了,它确实取决于引擎。

在 V8(Google Chrome、Opera、Node.js)32 位中:

适合 31 位有符号表示的整数(从 -1073741824 到 1073741823)通过将它们嵌入到指针中直接表示。

任何其他数字通常表示为具有 64 位 double 作为数值字段的堆对象(想想 JavaDouble包装器)。在优化的函数中,这些数字可以直接临时存储在堆栈和寄存器中。某些类型的数组也可以“永久”直接存储双精度数。

在 V8 64 位中:

与 32 位相同,但整数现在可以适应 32 位有符号表示(从 -2147483648 到 2147483647)而不是 31 位。

于 2013-11-13T09:57:47.683 回答
5

是的。Javascript 中的数字是双精度浮点数。无论在哪个平台上运行,它都是一样的。

于 2013-11-13T06:25:38.667 回答
0

我想我的答案在于 MDN @ 64 位整数

于 2013-11-13T06:24:12.387 回答