2016-05-26 3 views
0

Я встретил проблемы в обучении javascript.Here мой код:максимальная длина массива в JavaScript

var arr = []; 
for (let i = 0; i <4294967296; i=i+1){ 
    arr[i] = 1;} 

Но как в хроме и светлячок, он в конечном итоге с чем-то wrong.I знаю, что максимальная длина массива - 4294967295 (2^32-1) в javascript, когда я изменил 4294967296 на 4294967295, 4294967294, или немного меньше, он все еще не работал. Я также протестировал его в Node.js, после в то время как это закончилось:

FATAL ERROR: invalid array length Allocation failed - JavaScript heap out of memory 

Не знаю почему?

+1

Как и ошибка, у вас заканчивается память. – rnevius

+0

Ваш компьютер не имеет достаточной адресной памяти для выделения. –

+4

Также http://stackoverflow.com/questions/6154989/maximum-size-of-an-array-in-javascript – rnevius

ответ

0

1 является целым числом и имеет 4 байта или 8 байтов в памяти (в зависимости от вашей ОС), поэтому вы не должны иметь 4M * байты этой длины, доступные в памяти.

+0

Что вы на самом деле имеете в виду 4G? Думаю, это и есть причина. – buggo

Смежные вопросы