Что такое массив

Что такое массив

Технический фундамент массивов

Массив в JavaScript — специальный объект для индексированной коллекции данных.
Технически это ссылочный тип с дополнительной логикой вокруг индексов и length.

const arr = ['a', 'b'];

console.log(typeof arr); // object
console.log(Array.isArray(arr)); // true
console.log(arr.length); // 2

Ключевой момент: массив — это не «просто объект», а структура с предсказуемым поведением для последовательных данных.

Базовая идея и синтаксис

Массив создают в квадратных скобках [].

const fruits = ['apple', 'banana', 'orange'];
const scores = [10, 20, 30];
const mixed = ['Alex', 23, true];

Элементы массива имеют индексы: 0, 1, 2 и т.д.

const colors = ['red', 'green', 'blue'];

console.log(colors[0]); // red
console.log(colors[2]); // blue
console.log(colors[10]); // undefined

Проверь себя: какой индекс у последнего элемента в массиве из 5 элементов?

length и границы

Свойство length показывает размер массива. В обычных «плотных» массивах это совпадает с количеством элементов.

const tasks = ['login', 'fetch', 'render'];
console.log(tasks.length); // 3

Смотри, что важно: технически length = последний индекс + 1. Если создать «дыры» (разреженный массив), length может быть больше числа реально заполненных элементов.

const a = [];
a[2] = 'x';

console.log(a.length); // 3
console.log(a[0]); // undefined (там нет значения)

Последний элемент обычно получают так:

const lastTask = tasks[tasks.length - 1];
console.log(lastTask); // render

Здесь часто путаются: если взять tasks[tasks.length], ты выйдешь за границу и получишь undefined.

Массивы по ссылке

Новый термин: ссылочный тип. Массив хранится по ссылке, а не как независимая копия при простом присваивании.

const original = ['JS', 'HTML'];
const copy = original;

copy.push('CSS');
console.log(original); // ['JS', 'HTML', 'CSS']

Анти-провал: если нужна отдельная копия, делай const clone = [...original].

Смотри, что важно: это поверхностная копия (shallow). Вложенные объекты/массивы внутри все равно будут разделяться по ссылке.

Микро-сценарии

  1. Рендер списка курсов на странице.
const lessons = ['Введение', 'Переменные', 'Массивы'];
for (const lesson of lessons) {
  console.log(`Урок: ${lesson}`);
}
  1. Хранение статусов заказов из API.
const statuses = ['new', 'paid', 'shipped'];

Один массив позволяет централизованно управлять UI-состояниями.

Типичные ошибки новичков

  • Считать, что индекс начинается с 1, а не с 0.
  • Выходить за границы массива.
  • Случайно менять исходный массив через вторую переменную-ссылку.
  • Путать массив [] и объект {}.

Краткий итог

  • Массив — упорядоченный список значений.
  • Элементы доступны по индексам с 0.
  • length показывает размер массива.
  • Массивы хранятся по ссылке, копирование требует отдельного шага.
  • Массив — базовая структура для работы со списками в JavaScript.