JavaScript:
Склеивание строк
Как:
В JavaScript у вас есть несколько способов конкатенации строк. Старая школа: +
. Современный подход: шаблонные литералы. Вот как они выглядят.
Используя оператор +:
let hello = "Привет, ";
let world = "мир!";
let greeting = hello + world;
console.log(greeting); // "Привет, мир!"
Используя шаблонные литералы:
let user = "Джейн";
let welcomeMessage = `Привет, ${user}! Добро пожаловать обратно.`;
console.log(welcomeMessage); // "Привет, Джейн! Добро пожаловать обратно."
Подробнее:
Раньше +
был предпочтительным способом, но это становилось запутанным при использовании множества переменных. Затем в 2015 году появился ES6, представивший шаблонные литералы (эти обратные кавычки ```). Это означало создание более чистых строк и возможность вставки переменных и выражений прямо в вашу строку без особых усилий.
Почему +
может быть проблемой:
- Сложнее читать с несколькими переменными.
- Легко пропустить пробелы, что приводит к слиянию слов.
- Разве нужны все эти плюсы?
Почему шаблонные литералы круты:
- Читаемость: Как английское предложение с заполненными пробелами.
- Поддержка многострочности: Вы можете создавать строки, которые занимают несколько строк, без использования
+
или\n
. - Интерполяция выражений: Вставляйте переменные, делайте расчеты - всё за один шаг.
Вот многострочность и выражения в действии:
let apples = 3;
let oranges = 5;
let fruitSummary = `У вас есть ${apples + oranges} штук фруктов:
${apples} яблок и
${oranges} апельсинов.`;
console.log(fruitSummary);
Выводит аккуратно оформленное резюме без каких-либо акробатических трюков с +
.
Технически, конкатенация строк создает новую строку каждый раз, когда вы используете +
. Для компьютера это как делать целый новый шоколадный батончик каждый раз, когда вы хотите добавить орешек. Не очень эффективно. Шаблонные литералы - это как если бы у вас была форма, куда можно сразу положить все ингредиенты - лучшая производительность, особенно с большими строками или в циклах.
Смотрите также
- Документация MDN по шаблонным литералам (для дальнейшего чтения): https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Template_literals
- Методы и свойства строк (полезно при работе со строками): https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String