Результаты: object, undefined, number, bigint, string, boolean, symbol, object, function. Массив проверяют через Array.isArray; typeof null исторически возвращает object.
Какие типы имеют null, массив, bigint и функция в JS?
Результаты: object, undefined, number, bigint, string, boolean, symbol, object, function. Массив проверяют через Array.isArray; typeof null исторически возвращает object.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Для const values = [null, undefined, 7, 7n, '7', true, Symbol('x'), [], () => 1]; перечислите результаты typeof и поясните, почему их недостаточно для определения массива.
Ответ
Результаты: object, undefined, number, bigint, string, boolean, symbol, object, function. Массив проверяют через Array.isArray; typeof null исторически возвращает object.
Null является отдельным примитивным значением, несмотря на результат typeof. Массив и обычный объект дают одинаковую строку object, поэтому одного typeof недостаточно для структурной проверки. Function тоже объект в модели языка, но typeof выделяет вызываемые объекты. Bigint 7n не следует автоматически смешивать с number 7 в арифметике: это разные числовые типы.