В JavaScript у каждого значения есть тип. Тип определяет, что это за значение и какие операции с ним имеют смысл. На старте чаще всего встречаются string, number, boolean, null и undefined.
Как понять тип значения
Для проверки типа используется оператор typeof.
typeof "text"; // "string"
typeof 10; // "number"
typeof true; // "boolean"
typeof undefined; // "undefined"
С null есть нюанс - typeof null возвращает "object". Это историческая особенность языка.
typeof null; // "object"
Если нужно отдельно проверить null, обычно сравнивают напрямую:
value === null
string - строка
Строка - это текст. Строки пишутся в кавычках: "...", '...' или в шаблонных строках `...`. В простых примерах чаще используют двойные кавычки.
const city = "Berlin";
const greeting = "Hello, world!";
Конкатенация и шаблонные строки
Склеивание строк через +:
const name = "Jack";
"Hello, " + name; // "Hello, Jack"
Шаблонные строки (удобны, когда есть вставки):
const name = "Jack";
const age = 25;
`Name: ${name}, age: ${age}`;
Полезные свойства и методы
const text = "JavaScript";
text.length; // 10
text.toUpperCase(); // "JAVASCRIPT"
text.includes("Script"); // true
number - число
Числа используются для вычислений. В JavaScript нет отдельного типа для целых и дробных - все это number.
const a = 10;
const b = 2.5;
a + b; // 12.5
Частые операции
10 + 5; // 15
10 - 5; // 5
10 * 5; // 50
10 / 5; // 2
10 % 3; // 1
Особые числовые значения
NaN - “не число”, появляется при некорректных вычислениях.
Number("abc"); // NaN
Проверка:
Number.isNaN(NaN); // true
Number.isNaN(10); // false
Infinity - бесконечность, например при делении на 0:
10 / 0; // Infinity
Осторожно со строками и числами
Оператор + может не только складывать, но и склеивать строки.
"10" + 5; // "105"
"10" - 5; // 5
Если нужно явно получить число, применяют Number():
Number("10") + 5; // 15
boolean - логический тип
boolean имеет два значения: true и false. Используется в условиях, фильтрах, проверках.
const isAdmin = true;
const isReady = false;
Пример условия:
const age = 18;
if (age >= 18) {
"Access allowed";
} else {
"Access denied";
}
Логические операторы
&&- И||- ИЛИ!- НЕ
true && false; // false
true || false; // true
!true; // false
undefined - значение “не задано”
undefined обычно означает, что значение пока не установлено.
Типичные ситуации:
- переменная объявлена, но ей ничего не присвоено
- попытка прочитать отсутствующее свойство объекта
- функция ничего не вернула
let value;
value; // undefined
const user = { name: "Jack" };
user.age; // undefined
function run() {}
run(); // undefined
null - значение “пусто намеренно”
null обычно используют, когда нужно явно показать: “значение пустое” или “значение сброшено”.
let selectedUser = null;
selectedUser; // null
Сравнение null и undefined по смыслу:
undefined- значения нет, не заданоnull- значение есть, но оно специально установлено как пустое
Сравнение null и undefined
Важно различать строгое и нестрогое сравнение:
===сравнивает без приведения типов==может приводить типы
null === undefined; // false
null == undefined; // true
В базовом коде обычно используют ===, чтобы избежать неожиданных эффектов.
Быстрая памятка
- string - текст в кавычках
- number - числа и вычисления
- boolean - true/false, условия
- undefined - не задано
- null - пусто намеренно
- typeof помогает понять тип, но для
nullнужен отдельный учет
Короткий итог
Типы данных помогают понимать, что именно хранится в переменной и какие операции допустимы. На старте важно уверенно различать string, number и boolean, а также понимать разницу между null и undefined.