我在学习javascript时遇到了问题。这是我的代码:
var arr = [];
for (let i = 0; i <4294967296; i=i+1){
arr[i] = 1;}
但是在chrome和firefox中,它最终出现了错误。我知道javascript中数组的最大长度是4294967295(2 ^ 32-1),当我将4294967296更改为4294967295,4294967294或者有点时更小,它仍然没有工作。我也在Node.js测试它,经过一段时间的执行,它刚刚结束:
FATAL ERROR: invalid array length Allocation failed - JavaScript heap out of memory
我不知道为什么?
答案 0 :(得分:0)
1是一个整数,在内存中是4个字节或8个字节长(取决于你的操作系统),因此你不能在内存中有4M *这个长度字节。