Skip to main content

typeof []

Оператор typeof у JavaScript повертає тип значення у вигляді рядка. Але в нього є одна неочевидна поведінка - з масивами.


Приклад:

javascript
console.log(typeof []); // "object"

Так, масив повертає "object" - а не "array".


Чому так?

Тому що в JavaScript масив - це частинний випадок об'єкта. Всередині він реалізований як об'єкт, де:

  • ключі - це числові індекси ("0", "1", "2"),
  • а властивість length відстежує кількість елементів.

Приклад:

javascript
const arr = ["a", "b"]; console.log(Object.keys(arr)); // ["0", "1"]

Як правильно перевірити, що це саме масив

Використовуй:

javascript
Array.isArray([]);

або

javascript
[] instanceof Array;

Обидва варіанти повернуть:

javascript
true

Коротко:

ПеревіркаПовертаєКоментар
typeof []"object"тому що масив - об'єкт
Array.isArray([])trueправильний спосіб
[] instanceof Arraytrueтеж правильно, але залежить від оточення

Підсумок: typeof [] -> "object" тому що масиви - це спеціальні об'єкти, оптимізовані для зберігання впорядкованих даних.

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

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

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