Хотите заказать веб-сайт? Связаться с нами

Переменные в JavaScript: полное руководство для начинающих

Если представить программу как живой организм, то переменные в JavaScript — это его клетки. Это базовые ячейки памяти, которые умеют хранить, сохранять и изменять информацию прямо во время работы программы. Благодаря им страница может запомнить имя пользователя, подсчитать сумму заказа или плавно сменить оформление — без переменных веб остался бы набором статичных документов.

В этом руководстве мы последовательно разберём всю механику работы с переменными: от правил их создания и именования до тонкостей обработки разных типов данных. Это знание станет вашим фундаментом для написания осмысленного, управляемого и эффективного кода на JavaScript.

Переменные в JavaScript: полное руководство для начинающих

Объявление переменных

Правильная работа с переменными начинается с выбора ключевого слова для их создания. В современном JavaScript доступны три опции: let, const и var (устаревший). Каждое из них задаёт особые правила: определяет, можно ли будет переназначить значение, и устанавливает границы, внутри которых эта переменная будет «видна» остальному коду.
  1. let — объявляет переменную, значение которой можно изменить (переприсвоить). Она имеет блочную область видимости, то есть существует только внутри блока {}, где была объявлена.
  2. const — объявляет константу, то есть переменную, чье значение нельзя переприсвоить после инициализации. Также имеет блочную область видимости. Попытка изменить значение приведет к ошибке.
  3. var — устаревший способ объявления с функциональной или глобальной областью видимости. Его использование в современном коде не рекомендуется.

Используйте const по умолчанию, и только если значение должно меняться, переходите на let.

Пример 1

// Объявление переменной, которая может меняться
let users = 10;
users = 11; // ✅ Корректно

// Объявление константы
const NDS_RATE = 0.20;
// NDS_RATE = 0.18; // ❌ Ошибка! TypeError

// Устаревший вариант (не рекомендуется)
var oldMeaning = "не используйте var";

Правила именования переменных

Правила именования переменных в JavaScript строги, но логичны. Соблюдение конвенций (соглашений) делает код читаемым и понятным для вас и других разработчиков.

Основные правила и соглашения

  1. Имена могут содержать буквы, цифры, символы $ и _.
  2. Первый символ не может быть цифрой.
  3. Регистр букв имеет значение: myVar и myvar — разные переменные.
  4. Нельзя использовать зарезервированные слова языка (например, let, if, return).

Рекомендуемые соглашения (стиль camelCase)

  • Используйте осмысленные имена (userName, cartTotal), а не абстрактные (a, x1).
  • Для имен, состоящих из нескольких слов, применяйте верблюжий регистр (camelCase): первое слово с маленькой буквы, каждое последующее — с большой.
  • Константы, значения которых известны до выполнения кода, часто именуют в верхнем регистре с подчеркиваниями.

Пример 2

// ❌ Плохие имена
let a = 5;
let n = "Иван";

// ✅ Хорошие, понятные имена
let userAge = 30;
let fullName = "Иван Петров";
const maxScore = 100;

Типы данных: что можно хранить в переменных

JavaScript — язык с динамической типизацией. Это означает, что тип данных переменной определяется автоматически в зависимости от хранимого в ней значения. Все типы делятся на примитивные (хранят одно значение) и объектные (более сложные структуры).

Основные примитивные типы данных

Тип Описание Пример
String Текстовая строка. let greeting = "Добрый день!";
Number Число (целое или с плавающей точкой). let price = 99.95;
BigInt Большие целые числа. let bigId = 9007199254740991n;
Boolean Логическое значение true/false. let isPaid = true;
Undefined Значение не присвоено. let result; // undefined
Null Преднамеренное «ничего» или «пусто». let isActive = null;
Symbol Уникальный идентификатор. let id = Symbol("id");

Особый случай — typeof null возвращает object. Это известная историческая ошибка языка, которую учитывают при разработке.

Пример 3

// Примеры различных типов
let project = "Веб-сайт"; // String
let budget = 150000; // Number
let isClosed = false; // Boolean
let details = null; // Null (значение установлено явно)
let deadlines; // Undefined (значение не задано)

console.log(typeof project); // "string"
console.log(typeof budget); // "number"
console.log(typeof details); // "object" (особенность языка!)

Если значение переменной ведёт себя неожиданно, первым делом проверьте её тип с помощью console.log(typeof переменная). Часто ошибки возникают не из-за неверной логики, а из-за неявного преобразования типов — когда, например, вы пытаетесь сложить строку "10" и число 5, получая "105" вместо 15. Эта простая проверка за секунды выявляет корень проблемы и экономит часы отладки.

Работа с типами: проверка и преобразование

На практике часто требуется проверять и преобразовывать типы данных переменных. Для этого в JavaScript есть встроенные операторы и функции.

Определение типа

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

Пример 4

let clients = 42;
let message = "42";
let isActive = true;

console.log(typeof clients); // "number"
console.log(typeof message); // "string"
console.log(typeof isActive); // "boolean"
console.log(typeof someVar); // "undefined"

Явное преобразование типов

Иногда нужно гарантированно получить значение определенного типа.

Пример 5

let userInput = "123"; // Это строка

// В число
let num = Number(userInput);
console.log(num); // 123 (число)
console.log(typeof num); // "number"

// В строку
let str = String(456);
console.log(str); // "456" (строка)

// В логическое значение
let bool = Boolean(1); // true
let bool2 = Boolean(0); // false
let bool3 = Boolean("Текст"); // true
let bool4 = Boolean(""); // false

Важно помнить про особенности: Number("Привет") даст NaN (Not-a-Number), Boolean("false") даст true, а Number(null) даст 0.

Из ноутбука появляются летающие светящиеся экраны

Оживи свой сайт. Освой JavaScript!

Статичная верстка — это только скелет. Наш онлайн-курс "JavaScript с нуля до профи" даст твоим страницам мышцы и нервы. Научись создавать слайдеры, формы, интерактивные карты и получать данные с сервера.

От теории — к реальным скриптам в твоём портфолио.

Подробнее о курсе

Операторы: действия с переменными

Для работы с переменными в JavaScript используются операторы. Они позволяют производить вычисления, сравнивать значения и объединять логические условия.

Арифметические операторы

Используются для математических действий:

  • + Сложение (или конкатенация строк)
  • - Вычитание
  • * Умножение
  • / Деление
  • % Остаток от деления (модуль)
  • ** Возведение в степень
  • ++ Инкремент (увеличение на 1)
  • -- Декремент (уменьшение на 1)

Пример 6

let a = 15;
let b = 4;

console.log(a + b); // 19
console.log(a - b); // 11
console.log(a * b); // 60
console.log(a / b); // 3.75
console.log(a % b); // 3 (остаток от деления)
console.log(a ** 2); // 225 (15 в квадрате)

let counter = 5;
counter++; // Увеличивает счетчик на 1 ПОСЛЕ использования
console.log(counter); // 6
let newCounter = ++counter; // Увеличивает ДО использования
console.log(newCounter); // 7

Операторы сравнения

Возвращают логическое значение (true/false):

  • == Равно (нестрогое, с приведением типа)
  • === Равно (строгое, по значению И типу) ← Рекомендуется
  • != Не равно (нестрогое)
  • !== Не равно (строгое) ← Рекомендуется
  • > Больше, < Меньше
  • >= Больше или равно, <= Меньше или равно

Пример 7

let x = 5;
let y = "5";

console.log(x == y); // true (значения одинаковы после приведения)
console.log(x === y); // false (типы разные: number vs string)
console.log(x !== y); // true (строгое "не равно" — типы разные)
console.log(x > 3); // true

Логические операторы

Работают с булевыми значениями:

  • && И (true, если оба операнда true)
  • || ИЛИ (true, если хотя бы один операнд true)
  • ! НЕ (инвертирует значение)

Пример 8

let isLogin = true;
let isPassword = false;

console.log(isLogin && isPassword); // false (требуются оба)
console.log(isLogin || isPassword); // true (достаточно одного)
console.log(!isPassword); // true (инверсия false)

Чтобы избежать головной боли со сравнениями, используйте простое мнемоническое правило: «Три — значит истина». Всегда выбирайте операторы с тремя символами (===, !==). Они работают строго и предсказуемо, проверяя и значение, и тип данных. Это избавит вас от ситуаций, когда 0 == false или "" == null возвращают true, что часто ломает логику программы. Строгое равенство — признак аккуратного и профессионального кода.

Практика: конвертер долларов в рубли

Задача

Создайте переменную, содержащую значение в долларах США, конвертируйте её в рубли и выведите результат в консоль в следующем формате:

Сумма в 100 долларов равна 7500 рублей

Для справки: 1 доллар США равен 75 рублям (курс условный).

Решение

// Конвертер долларов в рубли
const dollars = 100;
const exchangeRate = 75; // курс доллара к рублю
const rubles = dollars * exchangeRate;

// Вывод результата
console.log(`Сумма в ${dollars} долларов равна ${rubles} рублей`);

Часто задаваемые вопросы о JS переменных

В чем главная разница между let и const?

Ключевое различие — возможность переприсваивания значения. Переменную, объявленную через let, можно изменять сколько угодно раз. Переменная, объявленная через const, должна получить значение при создании, и это значение уже нельзя изменить. При этом важно помнить, что const защищает от изменения именно саму переменную, а не содержимое объекта или массива, на которое она может ссылаться.

Почему var считается устаревшим и не рекомендуется?

Ключевое слово var имеет функциональную область видимости и не имеет блочной, что часто ведет к неочевидным ошибкам и «всплытию» переменных. Это усложняет предсказуемость кода и его поддержку. Современные let и const, имеющие блочную область видимости, делают поведение программы более интуитивным и контролируемым, поэтому они полностью вытеснили var в новой разработке.

Что лучше использовать: двойное (==) или тройное (===) равенство?

Практически всегда используйте строгое равенство (===). Оно проверяет и значение, и тип данных, что исключает неожиданные результаты из-за неявного преобразования типов. Нестрогое равенство (==) может привести к ситуациям, когда 0 == false или "" == false возвращают true, что является частым источником ошибок для новичков.

Почему typeof null возвращает "object"?

Это известная историческая ошибка (баг) в языке JavaScript, сохраненная для обратной совместимости. На самом деле, null — это примитивный тип, но из-за особенностей внутреннего представления данных в ранних версиях языка оператор typeof выдает ошибочный результат. Для точной проверки на null используйте строгое сравнение: переменная === null.

Можно ли изменить константу, если она хранит массив или объект?

Да, можно изменять содержимое (например, добавлять элементы в массив или менять свойства объекта). const защищает от переприсваивания самой переменной, то есть вы не сможете сделать const massiv = []; massiv = [1,2,3]. Однако вы спокойно можете выполнить massiv.push(1), так как изменяется не ссылка переменной, а внутренняя структура данных, на которую она указывает.

Как правильно называть переменные на русском языке?

Технически JavaScript позволяет использовать Unicode, включая кириллицу. Однако общепринятой практикой в профессиональной среде является именование переменных на английском языке. Это делает код универсальным для разработчиков из любой страны, упрощает поиск ошибок и интеграцию с библиотеками. Если вы только учитесь, можно начать с русских имен для ясности, но для реальных проектов стоит сразу привыкать к английским названиям.

Заключение

Вы начинаете знакомиться с основами JavaScript — инструмента, который оживляет веб. Чтобы перейти от теории к созданию реальных проектов, приглашаем на онлайн-курс «Обучение JavaScript с нуля до профи». Это структурированный путь от основ до продвитутого уровня с практическими задачами и поддержкой.

Если же вам нужен готовый результат — профессиональный сайт для бизнеса — наша веб-студия реализует ваш проект под ключ: от дизайна до сложной логики.🎯

Выберите свой формат: стать разработчиком или получить готовый digital-инструмент. Свяжитесь с нами для консультации.

Теги: