Шесть типов данных, typeof


На сегодня типов данных уже семь. Из них шесть примитивных и один объект.
Примитивные типы данных:
  • number - число целое или дробное, сюда же относятся;
    • NaN - ошибка вычислений, например 0/0 или "string" - 1, или undefined + 1;
    • Infinity - результат деления на 0;
  • string - строка - всегда записывается в кавычках. Например, "42" - это строка;
  • boolean - булево значение - true или false;
  • null - "ничего" или "значение неизвестно";
  • undefined - значение не задано. Например, объявленная переменная, которой не присвоено значение, это undefined;
  • symbol - тип данных появившийся в es6. Cимвол в js это совсем не char, не отдельная буква, а новый тип, который нужен для того, чтобы задавать имена, которые точно не будут конфликтовали со старым кодом в котором этого типа данных ещё не было.
Седьмой тип данных - это объект - object. К объектам относятся собственно объекты, массивы и функции.

Как определить тип данных?
Для этого существует оператор typeof.  typeof является одновременно и оператором и функцией

Результаты их работы идентичны

typeof false   // "boolean"
typeof( false )   // "boolean"

Для выражений следует использовать запись со скобками.
Например:

typeof 1/0   // "NaN"
typeof( 1/0 )   // "number"


В первом случае вначале нашли тип данных единицы - number, а затем его поделили на ноль
Во втором - единицу поделили на ноль, получили Infinity, которое является разновидностью number

Подводные камни  typeof

typeof null // "object" - официально признанная ошибка в языке
typeof function(){} // "function" - такого типа данных нет, функции - разновидность объектов