Сколько типов данных в JavaScript и какие они
Что проверяют
Точность. Вопрос простой, поэтому смотрят, не путаете ли примитивы с объектами и знаете ли про особенности typeof.
Как отвечать
Восемь типов: семь примитивов и объект.
Примитивы: string, number, bigint, boolean, undefined, symbol, null.
Всё остальное это object: обычные объекты, массивы, функции, Date, Map, Set, регулярные выражения.
Главное отличие: примитивы неизменяемы и копируются по значению, объекты передаются по ссылке.
Особенности typeof, о которых спрашивают следом:
typeof null // "object": историческая ошибка языка
typeof [] // "object": для массива нужен Array.isArray
typeof function(){} // "function", хотя функция это объект
typeof NaN // "number"Полезно добавить, что number это число с плавающей точкой двойной точности, поэтому 0.1 + 0.2 !== 0.3, а для больших целых есть bigint.
Где спотыкаются
Называют массив отдельным типом.
Не знают про bigint и symbol, если давно не следили за языком.
Путают null и undefined: первое это осознанное «значения нет», второе «значение не присвоено». Сравнение null == undefined истинно, а null === undefined ложно.