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'Используйте += для накопления результата.
Полезное
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'Используйте += для накопления результата.
Полезное
Ваше упражнение проверяется по этим тестам
import { expect, test } from 'vitest';
import f from './index.js';
test('syntactic sugar', () => {
const text = 'If I look back I am lost';
expect(f(text, 'I')).toEqual('f look back am lost');
expect(f('zz Zorro', 'z')).toEqual(' Zorro');
});Решение учителя откроется через:
20:00
