/
Программирование
/
Курс JavaScript
/

Синтаксический сахар

JavaScript: Синтаксический сахар

В программировании часто встречаются повторяющиеся конструкции. В JavaScript, как и во многих других языках, есть возможность сокращать их запись. Такие упрощения называют синтаксическим сахаром — они делают код короче и удобнее, сохраняя тот же результат.

Сокращённые формы присваивания

Часто требуется изменить значение переменной: что-то прибавить, вычесть, умножить или разделить. Базовый вариант выглядит так:

index = index + 1;
count = count * 2;
total = total - 5;
price = price / 3;

JavaScript позволяет записать это короче, с помощью комбинированных операторов:

index += 1; // то же самое, что index = index + 1
count *= 2; // то же самое, что count = count * 2
total -= 5; // то же самое, что total = total - 5
price /= 3; // то же самое, что price = price / 3

Сахар в циклах

В циклах такие сокращения встречаются особенно часто: обычно мы меняем счётчик и накапливаем результат.

let sum = 0;
let index = 1;

while (index <= 5) {
  sum += index;  // то же самое, что sum = sum + index
  index += 1;    // то же самое, что index = index + 1
}

console.log(sum); // => 15

Без сокращений тело цикла было бы длиннее:

while (index <= 5) {
  sum = sum + index;
  index = index + 1;
}

Другие операции

Такая запись работает не только с числами. Для строк используется оператор конкатенации:

let text = 'Hello';
text += ' World'; // то же самое, что text = text + ' World'

Поддерживаемые сокращения

Сокращённая форма существует почти для всех операторов: +=, -=, *=, /=, %=, **=. Все они работают по одному принципу: берут текущее значение переменной, применяют операцию и сохраняют результат в ту же переменную.

Задание

Напишите функцию filterString(str, char), которая возвращает строку без всех вхождений символа char.

filterString('hello', 'l'); // => 'heo'
filterString('banana', 'a'); // => 'bnn'

Используйте += для накопления результата.

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются