Звернення до неіснуючого індексу
Якщо звернутися до неіснуючого індексу масиву, JavaScript поверне
undefined,
але помилки не буде.
Приклад:
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), - тоді буде помилка:
javascriptconst arr = undefined; console.log(arr[0]); // TypeError: Cannot read properties of undefined
Перевірити наявність елемента можна так:
const arr = [1, 2, 3];
console.log(2 in arr); // true - елемент з індексом 2 є
console.log(5 in arr); // false - елемента немаєПриклад з "дірками" (порожніми слотами):
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.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.