JavaScript
Типы данных JS: string, number, boolean, null, undefined и object
Типы данных в JS помогают понять, что хранится в переменной: текст, число, логическое значение, пустое значение, объект или список. Новичку сначала достаточно уверенно отличать string, number, boolean, null, undefined, object и массивы
Пример:
const name = "Dinar";
const age = 30;
const isAdmin = false;
console.log(typeof name); // string
console.log(typeof age); // number
console.log(typeof isAdmin); // boolean
Основные типы
Строка:
const city = "Kazan";
Число:
const price = 1500;
Логическое значение:
const isOpen = true;
Пустое значение по смыслу:
const selectedUser = null;
Значение еще не задано:
let result;
console.log(result); // undefined
Объект:
const user = {
name: "Anna",
age: 25
};
Массив:
const numbers = [1, 2, 3];
typeof
Оператор typeof показывает тип значения:
console.log(typeof "hello"); // string
console.log(typeof 42); // number
console.log(typeof true); // boolean
console.log(typeof {}); // object
Но есть нюанс:
console.log(typeof null); // object
Это историческая особенность JavaScript. Для проверки null обычно пишут прямое сравнение:
if (value === null) {
console.log("Значение пустое");
}
Массив это тоже object
const list = ["a", "b"];
console.log(typeof list); // object
Чтобы проверить массив, используйте:
Array.isArray(list);
Пример:
if (Array.isArray(list)) {
console.log("Это массив");
}
Строка и число
Частая ошибка — считать, что "10" и 10 одно и то же. Это разные типы:
console.log(typeof "10"); // string
console.log(typeof 10); // number
При сложении результат будет разным:
console.log(10 + 5); // 15
console.log("10" + 5); // "105"
Если число пришло из input, оно часто приходит строкой:
const value = Number(input.value);
null и undefined
undefined обычно означает «значение не задано». null чаще ставят явно, когда хотят сказать «здесь пока ничего нет»
let a;
let b = null;
Для новичка простое правило: если вы сами хотите обозначить пустое значение, используйте null. Если переменная оказалась undefined, проверьте, где она должна была получить значение
Преобразование типов
В реальных задачах тип часто нужно менять вручную. Например, значение из поля формы приходит строкой:
const inputValue = "25";
const age = Number(inputValue);
console.log(typeof inputValue); // string
console.log(typeof age); // number
Если строку нужно собрать из числа, можно использовать шаблонную строку:
const count = 3;
const message = `В корзине ${count} товара`;
Для проверки пустых значений не полагайтесь только на typeof. Лучше проверять конкретный смысл:
if (user === null) {
console.log("Пользователь не выбран");
}
if (name.trim() === "") {
console.log("Имя не заполнено");
}
Где типы особенно важны
Типы данных всплывают почти в каждой маленькой задаче: калькулятор, проверка формы, фильтр товаров, список задач, настройки интерфейса. Если калькулятор склеивает 10 и 5 в 105, значит одно из значений осталось строкой. Если условие не срабатывает, хотя число «такое же», проверьте, не сравниваете ли вы 18 и "18"
Хорошая привычка — временно выводить подозрительное значение и его тип:
console.log(value, typeof value);
После отладки такие строки можно удалить
Частые ошибки
Проверять тип через ==
Для точных сравнений используйте ===:
if (age === 18) {
console.log("Ровно 18");
}
Не преобразовывать строку из input
input.value всегда строка. Для арифметики преобразуйте через Number
Путать объект и массив
Массив — список. Объект — описание сущности. Для списка дел берите массив, для одного пользователя — объект
Мини-задание
Создайте переменные name, age, isStudent, skills. Выведите через typeof тип каждой переменной, а для skills дополнительно проверьте Array.isArray(skills)
Что почитать дальше по JavaScript
Если нужен общий маршрут по теме, откройте рубрику JavaScript. Для соседних задач пригодятся эти разборы:
- A JavaScript error occurred in the main process: как исправить
- If else в JavaScript: условия на живых примерах
- Java и JavaScript: в чем разница простыми словами
- JavaScript online compiler: как попробовать код без установки