JavaScript

Старые добрые массивы. js

Начал изучать js и дошел до массивов. Но почему то не работает как надо. я выделил память в 10 варов или как там их называют, поставил на счетчик итерироваться 20 раз и он не выдал мне ошибок выхода за пределы, почему???
Да и что это за new? надо ли освобождать память?
Alesha Bochkov
Alesha Bochkov
10 755
А где писали код? Наверно это было предупреждением, а не ошибкой.

https://jsfiddle.net/OPTlMUS/amcdkbLy/ - всё работает.

Но вообще, new Array() никто не использует, потому что незачем...

var arr = [];

так будет попроще) Разница лишь в том, что последний создает полностью пустой массив, а то что писали вы - создавало массив с 10 элементами, в которых ничего не хранится. А если ничего - то нафиг они нужны. Можно создать пустой и прямо в цикле всё добавлять...

let arr = [];

for( let i = 0; i < 20; i++ ){
arr[i] = i + 1;
// или arr.push( i+1 );
}
Федор Ладкин
Федор Ладкин
62 360
Лучший ответ
Alesha Bochkov Я понял) У меня все работает, в этом и была странность. но походу это не массив а ассоциативный контейнер.
что то между вектором и сетом..
А статические массивы в js есть?
new Array(19) сделай.
Alesha Bochkov все равно работает.
Массивы в JS - это что-то среднее между обычным массивом и ассоциативным массивом.
Если хочешь изучить JS, надо книгу читать. В JS много сюрпризов.
var и document.write лучше не использовать. Вместо var есть let.

Массивы, похожие на массивы в Си https://developer.mozilla.org/ru/docs/Web/JavaScript/Typed_arrays
Однако, они тоже не ругаются на выход за границу, видимо чтоб не огорчать пользователя.
Виктор Анашкин
Виктор Анашкин
36 282
Вадим Калинин мдаа, а я был лучшего мнения о js, нужно почитать доки и learnjs...
Alesha Bochkov Да я решил быстро пройтись для начало.
компилируемый и интерпретируемый языки имеют много различий, по сути когда ты обращаешься к массиву по индексу ты получаешь ссылку на элемент, если там ничего не записано то ты получишь undefined, и ты вполне можешь по этому адресу что-нибудь записать, а вообще такие основы везде должны быть описаны, возможно ты невнимательно читал
Sauletbek Ejenhan
Sauletbek Ejenhan
1 189
Alesha Bochkov а освобождать память не нужно?