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 Array | true | теж правильно, але залежить від оточення |
Підсумок:
typeof []->"object"тому що масиви - це спеціальні об'єкти, оптимізовані для зберігання впорядкованих даних.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.