Переменные
let, const, var — чем отличаются, почему var устарел, блочная область видимости.
Глобальная область
var globalVarfunction sayHi()Функция sayHi()
let nameconst MAXБлок if / for / {}
let iconst itemlet/const: видны только здесь ↑
✓ Видит: своё + блок внутри + глобальное
❌ var из if/for «вытекает» сюда
let/const — блочная область (любой {})
var — функциональная (только функция или глобальная)
let и const
Что такое переменная?
Переменная — это именованная «коробка» в памяти компьютера, в которой хранится какое-то значение.
let age = 25; // коробка с именем age, внутри — число 25
let name = "Иван"; // коробка name, внутри — строка "Иван"Зачем они нужны? Чтобы сохранить что-то и использовать позже:
let price = 1000;
let discount = 100;
let total = price - discount; // 900 — используем оба значения
console.log(total); // 900Объявление: let и const
В современном JavaScript два способа объявить переменную:
let score = 0; // let — значение можно изменить позже
const PI = 3.14159; // const — значение задаётся один раз, нельзя переприсвоить
score = 10; // ✓ let можно изменить
PI = 3; // ❌ TypeError — const нельзя переприсвоитьПравило: используй const по умолчанию. Переходи на let только когда значение должно меняться (счётчик, флаг, накопитель).
Блочная область видимости
Блок — это любой код внутри фигурных скобок {}. let и const живут только внутри своего блока — снаружи их не видно:
{
let greeting = "Привет!";
}
console.log(greeting); // ❌ Ошибка — greeting не существует здесь
if (true) {
let x = 10;
}
console.log(x); // ❌ Ошибка — x осталась внутри блока ifЭто хорошо — переменные не «утекают» и не мешают друг другу.
// Примеры хорошего использования
// ✓ const для вещей, которые не меняются
const MAX_SCORE = 100;
const PLAYER_NAME = "Иван";
const GRAVITY = 9.81;
// ✓ let для счётчиков и значений, которые меняются
let score = 0;
let lives = 3;
let isGameOver = false;
// Игровая логика:
score = score + 10; // набрали очки
lives = lives - 1; // потеряли жизнь
if (lives === 0) {
isGameOver = true; // let — значение изменилось
}
// Примеры из реальных программ:
const PI = 3.14159; // не меняется — const
const TAX_RATE = 0.2; // не меняется — const
let currentPage = 1; // будет меняться — let
let errorMessage = ""; // будет меняться — let