Javascript 一个数字的大小(内存中)是多少?

Javascript 一个数字的大小(内存中)是多少?,javascript,Javascript,JavaScript中数字的大小是多少 例如,我知道C中的单个字符是1字节。int的大小是sizeof(int)。int64_t上的大小为64位,依此类推 JavaScript中数字(十进制、浮点)的大小是多少(以及如何查找)?在JS中,无法确定数字值大小的内存大小。它是特定于发动机的,在同一发动机的不同值之间可能不同。ECMAScript标准(例如)只定义了数字的可观察行为,但只要行为最终符合规范,不同的JS虚拟机就会在引擎盖下使用各种不同的数字类型进行优化 标准对引擎可以使用的内容没有限制,

JavaScript中数字的大小是多少

例如,我知道C中的单个字符是1字节。int的大小是
sizeof(int)
。int64_t上的大小为64位,依此类推


JavaScript中数字(十进制、浮点)的大小是多少(以及如何查找)?

在JS中,无法确定数字值大小的内存大小。它是特定于发动机的,在同一发动机的不同值之间可能不同。ECMAScript标准(例如)只定义了数字的可观察行为,但只要行为最终符合规范,不同的JS虚拟机就会在引擎盖下使用各种不同的数字类型进行优化


标准对引擎可以使用的内容没有限制,也没有定义检索这些实现细节的方法。规范的任何其他部分也不依赖于任何东西,除了可观察到的行为。您可以在其文档中查看特定于引擎的详细信息,或者尝试特定于引擎的内部调试工具,但您无法从JS代码本身获取此大小的数据。

除了其他答案中提到的内容外,现实情况是现代引擎使用各种优化,包括以各种不同的方法(类型…)存储数字取决于使用情况。这是以下内容背后的主要思想之一,仅举一个简单的例子:

var i = 0;
while(i < 5) {
  console.log('hello');
  i++;
}
var i=0;
而(i<5){
log('hello');
i++;
}

引擎可以推断
i
是一个整数,并优化它的使用。

javascript只有
Number
——它是一个64位的“双精度”,在javascript(以及大多数高级语言)中,您与这样的低级细节明确隔离。
int64\u t
是64位。只是说我没有权利问这个问题但你为什么要问这个?如果出于包括子字符串“perf”在内的任何目的,例如,像不值得考虑的性能一样,您可能会通过应用无用的微优化使代码变得更不可读,这对您和项目的其他未来维护人员来说是一件坏事;)由于实现中的优化,它并不总是64位的,相反,您可以保证获得完全兼容的行为。引擎可能会在引擎盖下使用更短/更快/任何其他值,只要他们的优化引擎决定他们可以逃脱。你能给我一个链接到Chrome/FF引擎文档的相关部分吗?
这是特定于引擎的
-但你的链接表明ECMA-262要求格式为IEEE标准754@JaromandaX格式/行为必须匹配,引擎如何存储它是它自己的事。@JaromandaX,它的逻辑必须符合IEEE标准。但Internally引擎可能会使用其他任何东西进行优化,因此您无法按照OP的要求确定它的大小。@JamesThorpe-是的,我的错,我认为“深度”不够