Skip to main content

Звернення до неіснуючого індексу

Якщо звернутися до неіснуючого індексу масиву, JavaScript поверне undefined, але помилки не буде.


Приклад:

javascript
const arr = ["apple", "banana", "cherry"]; console.log(arr[0]); // "apple" console.log(arr[3]); // undefined - елемента немає console.log(arr[10]); // undefined - і теж без помилки

Чому так відбувається

  • У JavaScript масив - це об'єкт, де індекси - це рядкові ключі:

    javascript
    // приблизно еквівалентно const arr = { "0": "apple", "1": "banana", "2": "cherry", length: 3 };
  • Якщо звернутися до неіснуючої властивості, JS поверне undefined (а не викине помилку, як, наприклад, у Python чи Java).


Важливо:

  • undefined означає "значення відсутнє", а не "помилка".

  • Але якщо ти намагаєшся звернутися до індексу масиву, якого взагалі немає (сам масив undefined), - тоді буде помилка:

    javascript
    const arr = undefined; console.log(arr[0]); // TypeError: Cannot read properties of undefined

Перевірити наявність елемента можна так:

javascript
const arr = [1, 2, 3]; console.log(2 in arr); // true - елемент з індексом 2 є console.log(5 in arr); // false - елемента немає

Приклад з "дірками" (порожніми слотами):

javascript
const arr = [1, , 3]; // пропущений елемент console.log(arr[1]); // undefined console.log(1 in arr); // false (комірки реально немає)

Тобто: arr[1] дасть undefined, але при цьому слот не існує - це порожня комірка, не рівна undefined.


Коротко:

СитуаціяРезультатПомилка?
Індекс існуєповертає значенняНі
Індексу немаєundefinedНі
Масив не існуєTypeErrorТак
Порожній слот (діра)undefined, але index in arr -> falseНі

Підсумок: Звернення до неіснуючого індексу масиву повертає undefined, але не викликає помилку. Це поведінка - частина гнучкості JavaScript.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.