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