Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Типы данных

У каждого значения в JavaScript есть тип — вид данных, который определяет, что с этим значением можно делать. Числа можно умножать, строки — переводить в верхний регистр, а логические значения — проверять в условиях.

Основные типы

ТипПримерОписание
number42, 3.14Число, целое или дробное
string'текст'Строка — любой текст в кавычках
booleantrue, falseЛогическое значение: истина или ложь
undefinedundefinedЗначение ещё не задано
nullnullЗначение намеренно пустое
object[1, 2], { a: 1 }Массивы и объекты — наборы значений

Первые пять типов называют примитивами: это простые, неделимые значения. Массивы и объекты разберём в отдельных главах.

Оператор typeof

Оператор typeof возвращает название типа в виде строки:

console.log(typeof 42); // number

С его помощью можно проверить, что лежит в переменной:

console.log(typeof 'текст');   // string
console.log(typeof true);      // boolean
console.log(typeof undefined); // undefined

Логические значения

Тип boolean имеет всего два значения: true (истина) и false (ложь). Их чаще всего получают при сравнении:

console.log(5 > 3); // true

Логические значения управляют условиями и циклами — с ними мы встретимся в следующей главе.

undefined и null

Переменная, которой ещё ничего не присвоили, содержит undefined. А null присваивают сами, когда хотят явно показать, что значения нет:

let city;
const discount = null;
 
console.log(city);     // undefined
console.log(discount); // null

Проще всего запомнить так: undefined — «ещё не задано», null — «задано, но пусто».

Тип меняется вместе со значением

В JavaScript тип принадлежит значению, а не переменной. Одна и та же переменная, объявленная через let, может хранить сначала число, а потом строку:

let value = 42;
value = 'сорок два';
 
console.log(typeof value); // string

Так писать можно, но лучше не стоит: код легче читать, когда в переменной всегда лежат данные одного типа.

Частая ошибка

У typeof есть известная странность: для null он возвращает 'object'. Это ошибка первых версий языка, которую оставили ради совместимости со старыми сайтами:

console.log(typeof null); // object

Чтобы проверить, что значение равно null, сравнивайте его напрямую: value === null.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.