бесплатно без регистрации урок 2 из 18

Переменные

Научиться давать значениям имена, выбирать между let и const и называть переменные так, чтобы код объяснял себя сам.

6 мин чтения · 3 главы ·4 задания ·домашняя работа

Зачем имя значению

В прошлом уроке всё считалось прямо внутри console.log. Так можно ровно до второй строки:

console.log("Цена:", 1200);
console.log("Скидка:", 1200 * 0.2);
console.log("Итого:", 1200 - 1200 * 0.2);

Число 1200 стоит три раза. Поменялась цена — править в трёх местах, и забыть одно из них проще простого. Решение старое, как сама математика: дать значению имя.

let цена = 1200;
цена=100let цена = 100;объявили имя и сразу положили в него значение
Слева имя, справа значение. Знак равенства здесь не сравнение, а «положи туда».

Читается так: «заведи имя цена и положи в него 1200». Слово let означает «объявляю новое имя». Знак = здесь не «равно», а «положи туда» — это важно, потому что в JavaScript равенство пишется иначе, и путаница между ними даёт самую частую опечатку новичка.

Теперь имя можно использовать вместо значения:

let цена = 1200;
console.log("Цена:", цена);
console.log("Скидка:", цена * 0.2);
console.log("Итого:", цена - цена * 0.2);

Цена: 1200 Скидка: 240 Итого: 960

Поменяйте 1200 на 900 в одной строке — и пересчитается всё. Это и есть первая настоящая выгода: одно место правды.

let и const

Слов для объявления два, и выбирают между ними по одному признаку: будет ли значение меняться.

let счёт = 0;        значение будет меняться
const имя = "Аня";   значение останется прежним
let счёт = 0;счёт = 10;можноconst имя = "Аня";имя = "Боря";нельзя — программа остановитсяпо умолчанию берут const и меняют на let, когда понадобится
Оба заводят имя. Разница в том, можно ли потом положить туда другое.

let разрешает положить в имя другое значение:

let счёт = 0;
счёт = 10;
счёт = счёт + 5;
console.log(счёт);

15

Обратите внимание на третью строку. счёт = счёт + 5 выглядит как математическая бессмыслица, но это не уравнение: сначала считается правая часть (10 + 5), потом результат кладётся в имя слева. Читать такие строки надо справа налево.

const запрещает:

const имя = "Аня";
имя = "Боря";     ← программа остановится

По умолчанию берут const, и меняют на let, когда выясняется, что значение должно меняться. Причина не в строгости, а в чтении: const сообщает читателю «дальше это не изменится», и одну возможность в голове держать не нужно.

Правила имён

Имя переменной нельзя придумать совсем произвольно. Правил немного:

можно      буквы, цифры, знак подчёркивания и доллара
нельзя     начинаться с цифры
нельзя     занятые языком слова: let, const, if, for, function
важно      регистр: цена и Цена — два разных имени

Русские буквы в именах язык разрешает, и в этом курсе мы иногда ими пользуемся — так короче объяснять. В настоящей работе пишут латиницей: код читают люди из разных стран, а библиотеки и сообщения об ошибках всё равно английские.

let totalPrice = 960;      принято в JavaScript
let total_price = 960;     принято в других языках
let TotalPrice = 960;      так называют не переменные

Первый способ называется «горбатым»: слова пишут слитно, каждое следующее с большой буквы. Это не закон языка, а договорённость сообщества — но настолько повсеместная, что отступление от неё читается как ошибка.

Ещё одно правило, которое язык не проверяет, но которое важнее всех остальных: имя должно быть честным.

let d = 86400;             что это?
let секундВСутках = 86400;  понятно без комментария

Задания урока

Каждое проверяется сразу: ответ сверяется с эталоном, и на неверный вариант приходит разбор.

  1. Заведите переменную «цена» со значением 1200 и напечатайте её.легко
  2. Заведите «цена» со значением 1200, посчитайте скидку 20 процентов в переменную «скидка» и напечатайте её. Число 1200 должно встретиться в программе один раз.средне
  3. Заведите «счёт» со значением 0, увеличьте его на 10, потом ещё на 5, и напечатайте результат.средне
  4. Заведите две переменные с говорящими именами: «секундВМинуте» со значением 60 и «минутВЧасе» со значением 60. Напечатайте, сколько секунд в сутках — посчитайте, а не пишите готовым числом.сложно
Пройти урок с проверкой заданий Курс «JavaScript» открыт и бесплатен, прогресс сохраняется.
Открыть курс