Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Звернення до неіснуючого індексу». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Якщо звернутися до **неіснуючого індексу масиву**, JavaScript поверне `undefined`, але помилки не буде. **Ключове:** якщо ж сам масив дорівнює `undefined`, звернення до будь-якого його індексу викине `TypeError`.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняЯкщо звернутися до **неіснуючого індексу масиву**, 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.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.