Сокращённая запись
В циклах переменные приходится менять постоянно, обычно прибавляя или вычитая что-то. Писать number = number + 1 снова и снова утомительно, поэтому в JavaScript есть более короткие способы:
score += 5;означает то же, чтоscore = score + 5;score -= 5;означает то же, чтоscore = score - 5;score++;означает то же, чтоscore = score + 1;score--;означает то же, чтоscore = score - 1;
Читайте += как «прибавить к»: score += 5 значит «прибавить 5 к score». Операторы ++ и -- нужны для самого частого изменения: на единицу больше или на единицу меньше.
let score = 10;
score += 5;
console.log(score);
score -= 3;
console.log(score);
score++;
console.log(score);
score--;
console.log(score);Вывод:
15
12
13
12Оператор += работает и со строками. Он дописывает текст в конец переменной:
let message = "Привет";
message += ", мир";
message += "!";
console.log(message);Привет, мир!С ++ цикл из предыдущего упражнения становится чуть короче. Чаще всего вы будете видеть его именно в таком виде:
let number = 1;
while (number <= 3) {
console.log(number);
number++;
}1
2
3Две типичные ошибки:
score + 5;само по себе ничего не делает. Оно вычисляет результат, но никуда его не сохраняет, поэтомуscoreне меняется. Нужно написатьscore += 5;.score =+ 5;, где два символа поменялись местами, не вызывает ошибку. JavaScript читает это какscore = +5;и просто записывает5вscore. Знак равенства всегда стоит вторым:+=,-=.
Все эти сокращения меняют переменную, поэтому работают только с let. С const они заканчиваются ошибкой TypeError: Assignment to constant variable.
Задание
- 1
Цикл в редакторе выводит 0, 10, 20 и так далее до 50. Замените
number = number + 10;на более короткую запись с+=. Вывод останется прежним. - 2
Под циклом создайте переменную
countdownсо значением3и напишите второй циклwhile: покаcountdownбольше0, выводитеcountdown, а затем уменьшайте его на единицу с помощью--. - 3
После второго цикла выведите
Поехали!. Тогда вывод закончится четырьмя строками:3,2,1иПоехали!.