JavaScript是否优化了存储在内存中的变量的大小?例如,具有布尔值的变量占用的空间是否小于具有整数值的变量?
基本上,将是以下数组:
var array = new Array(8192);
for (var i = 0; i < array.length; i++)
array[i] = true;
计算机内存中的小于:
var array = new Array(8192);
far (var i = 0; i < array.length; i++)
array[i] = 9;
答案 0 :(得分:1)
简短回答:是的。
布尔值一般(并且它将取决于用户代理和实现)将占用4个字节,而整数将占用8个。
查看其他StackOverflow问题,了解其他人如何设法测量JS中的内存占用:JavaScript object size
编辑:ECMAScript Spec的第8.5节说明如下:
Number类型具有正好18437736874454810627个值,表示IEEE二进制浮点运算标准中规定的doubleprecision 64位格式IEEE 754值
...所以无论实现如何,所有数字都应该是8个字节。
答案 1 :(得分:0)
嗯,js只有一个数字类型,这是一个64位的浮点数。字符串中的每个字符都是16位(src:douglas crockford's,javascript是好的部分)。因此,处理bool可能是特定的解释器实现。如果我没记错的话,V8引擎肯定会将'布尔'对象称为'c bool'。