Проверяет понимание оператора typeof и его поведения с массивами в JavaScript.
В JavaScript оператор typeof используется для определения типа значения. Однако для массивов он возвращает 'object', а не 'array'. Это происходит потому, что массивы в JavaScript являются специализированными объектами с числовыми индексами и свойством length. Они наследуют от Object.prototype, поэтому typeof не отличает их от обычных объектов.
const arr = [1, 2, 3];
console.log(typeof arr); // 'object'
const obj = { a: 1 };
console.log(typeof obj); // 'object'
// Правильная проверка массива
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // falseИсторически typeof был разработан для простых типов данных. Массивы не получили отдельного типа, так как они являются частью объектной модели языка. Это решение упрощает реализацию, но требует от разработчиков использования дополнительных методов для точной проверки.
Array.isArray(value) — стандартный и надёжный способ.Object.prototype.toString.call(value) === '[object Array]' — альтернативный метод.Используйте Array.isArray() для проверки массивов, так как typeof не даёт точного результата. Это важно при работе с данными, где требуется различать массивы и объекты, например, при сериализации или обработке API-ответов.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию