Переменные: let и const
Переменная представляет собой имя для значения. После let score = 10 слово score означает 10, пока ты не дашь ему что-то другое.
Имя для значения, чтобы использовать его снова
До сих пор каждое значение мы набирали прямо в console.log и тут же забывали. Настоящим программам нужно помнить: очки игрока, товары в корзине, имя, которое кто-то ввёл. Переменная похожа на коробку с именем, в которой лежит значение. Ты создаёшь её один раз, а потом пишешь её имя везде, где нужно это значение.
let score = 10;
console.log(score); // 10
console.log(score + 5); // 15Строка let score = 10; делает две вещи. Ключевое слово let объявляет новую переменную с именем score, а = 10 кладёт в неё значение 10. Знак равенства здесь не значит «равно», как в математике. Он значит «сохрани значение справа под именем слева». Программисты называют это присваиванием. Когда score потом встречается без кавычек, JavaScript заглядывает в коробку и берёт значение оттуда.
Изменение значения с let
Переменной, объявленной через let, позже можно дать новое значение. Пишешь имя, знак равенства и новое значение, на этот раз без let, потому что переменная уже существует:
let score = 10;
score = 25;
console.log(score); // 25
score = score + 5;
console.log(score); // 30Строка score = score + 5; выглядит невозможной с точки зрения математики, но если читать её как инструкцию, всё понятно. Сначала JavaScript вычисляет правую часть: текущее score плюс 5, то есть 30. Затем он сохраняет 30 обратно в score. Старого значения больше нет. Этот приём, прочитать переменную и сохранить в неё обновлённое значение, позволяет программам считать, складывать итоги и следить за всем, что меняется.
const для значений, которые не меняются
Ключевое слово const тоже объявляет переменную, но значение ей нужно дать сразу, и присвоить новое уже нельзя. Попытка остановит программу с TypeError: Assignment to constant variable. Эта ошибка полезна. Если значение не должно меняться, например число дней в неделе или ставка налога, объявление через const гарантирует, что ошибка в другом месте программы не перезапишет его незаметно.
const daysInWeek = 7;
console.log(daysInWeek * 4); // 28
// daysInWeek = 8; остановит программу с TypeErrorХорошая привычка, которую советуют многие руководства по стилю: по умолчанию пиши const и переходи на let, только когда знаешь, что значение будет меняться. В коде в интернете ты можешь встретить и старое ключевое слово var. Оно всё ещё работает, но подчиняется более свободным правилам, из-за которых бывают неожиданные ошибки, поэтому в этом курсе используются только let и const.
Правила для имён
Имя переменной может содержать буквы, цифры, подчёркивание _ и знак доллара $, но не может начинаться с цифры и содержать пробелы. Так что total2 подходит, а 2total нет. Имена различают регистр: score и Score являются двумя разными переменными. Несколько слов, например let, const, if и for, зарезервированы языком, и их нельзя брать в качестве имён. Если имя состоит из нескольких слов, программисты на JavaScript обычно пишут его в стиле camelCase: первое слово строчными буквами, а каждое следующее с заглавной, как в totalPrice или daysInWeek. Выбирай имена, которые говорят, что значит значение; price скажет читателю гораздо больше, чем x.
Объявлена, но пуста, и использована слишком рано
Если написать let answer; без значения, переменная существует, но содержит undefined, пока ты что-нибудь не присвоишь. Использовать переменную let или const в строке выше её объявления нельзя: будет ReferenceError: Cannot access 'answer' before initialization. Имя, которое вообще не объявляли, даёт ReferenceError: answer is not defined. На практике оба сообщения значат одно: проверь написание и проверь, что объявление стоит первым.
let name = value; можно изменить позже. const name = value; не меняется никогда.
| переменная | Имя, в котором хранится значение |
| объявить | Создать переменную через let или const |
| присваивание | Сохранение значения с помощью = |
| let | Объявляет переменную, значение которой может меняться |
| const | Объявляет переменную, которой нельзя присвоить новое значение |
| camelCase | totalPrice: следующие слова начинаются с заглавной |
| undefined | То, что лежит в объявленной переменной, пока ей не дали значение |
| зарезервированное слово | Слово вроде let или if, которое нельзя сделать именем |
- Что выведет этот код?
let x = 4; x = x + 3; console.log(x); - Что выведет этот код?
let n = 2; n = 10; n = n * 3; console.log(n); - Что выведет этот код?
let city = "Busan"; console.log("city");- Busan
- city
- undefined
- Что произойдёт, когда этот код выполнится?
const max = 5; max = 6;- max станет 6
- TypeError: Assignment to constant variable
- Ничего, max молча останется 5
- Какое имя переменной правильное?
2ndPlacesecond placesecondPlace
- Что выведет этот код?
let total; console.log(typeof total); - Что выведет этот код?
let a = 5; let b = a; a = 9; console.log(b); - Являются ли
scoreиScoreодной переменной?- Да
- Нет
- Какое ключевое слово подходит для числа минут в часе?
constletvar
- Что выведет этот код?
let word = "hi"; word = word + word; console.log(word);
- let name = value; объявляет переменную, которая может меняться.
- const name = value; объявляет переменную, которой нельзя присвоить новое значение.
- = значит «сохрани», а не «равно».
- x = x + 1 читает x, прибавляет 1 и сохраняет результат обратно.
- Имена: буквы, цифры, _ и $, без цифры в начале, с различением регистра, в стиле camelCase.
Источники курса (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Проверено: 2026-10-17