Загрузка…
Загрузка…
В языке есть примитивы и объекты. «Массив», «дата», «функция» — это виды объектов, а не отдельные language types (кроме особого typeof у функций).
number, string, boolean, undefined, null, symbol, bigint.
Всё остальное: plain objects, arrays, functions, dates, regex, Map/Set и т.д. У функций typeof вернёт "function".
typeof 1; // 'number'
typeof null; // 'object' — исключение
typeof []; // 'object'
Array.isArray([]); // trueСемь примитивов + Object. Структуры данных — объекты с разным API, а не отдельные типы языка.
typeof не различает массивы и обычные объекты — оба 'object'. Для «какого именно объекта» смотрят конструктор/Array.isArray/протоколы. NaN имеет тип number, что тоже часто спрашивают рядом с типами данных.
Ожидают не заученную таблицу, а умение связать концепцию с багом из практики: что сломается, если выбрать неправильный вариант, и какой код вы напишете в реальном PR. Короткий пример и граничный случай обычно ценятся выше длинной теории.
