Подстановка выражений в шаблонную строку
На первый взгляд может показаться, что шаблонная строка в ES6 похожа на улучшенную версию обычной строки JavaScript. Но отличительная разница между шаблонной и обычной строкой заключается в том, что для шаблонной строки предусмотрена возможность вставки значений переменных или выражений – интерполяция строки.
Интерполяция позволяет встраивать любую переменную или выражение внутри литерала шаблонной строки и выводить результаты как часть строки.
Для того чтобы указать JavaScript заменить переменной или выражением часть строки, необходимо поместить переменную или выражение в специальный блок:
$ {Имя_переменной или Выражение}
Далее пример.
let firstName = 'Андрей';
let lastName = 'Андреев';
let greeting = `Привет $ {firstName} ${lastName}`;
console.log (greeting); // Привет, Андрей Андреев
Подстановка ${firstName} и ${lastName} открывает переменные firstName и lastName для вставки их значений в строку, результат сохраняется в переменной greeting.
Следующий пример показывает, как использовать выражения вместо просто переменных.
let price = 5.99,
tax = 0,1;
var netPrice = `Итоговая цена: $$ {(price * (1 + tax)).toFixed(2)}`;
console.log (netPrice); // Итоговая цена: $ 6,589
Шаблонные строки с тегами
Тег шаблона предназначен для преобразования литерала шаблонной строки. Помещается он в начале шаблона перед символом обратного апострофа (`) следующим образом:
let greeting = tag`Hi`;
В этом примере тег tag является тегом шаблона, который применяется к литералу шаблонной строки Hi.
Тег - это функция со следующей сигнатурой.
function тег(литералы, ... подстановки) {
// возвращаем строку
}
Аргумент литералов - это массив, содержащий литералы строк.
Аргумент замещений (подстановок) содержит выражения, передаваемые в литерал
шаблонной строки.
function format(literals, ...substitutions) {
let result = '';
for (let i = 0; i < substitutions.length; i++) {
result += literals[i];
result += substitutions[i];
}
// добавить последний литерал
result += literals[literals.length - 1];
return result;
}
let quantity = 9,
priceEach = 8.99,
result = format`${quantity} яблок стоят $${(quantity * priceEach).toFixed(2)}.`;
console.log(result); // 9 яблок стоят \$80.91.
В этом примере функция format() получает три аргумента: массив литералов и два других аргумента, хранящихся в массиве подстановок.
- Первый аргумент - это массив литералов, содержащий три элемента:
- Пустая строка перед первым блоком выражения ("). Обратите внимание, что первым аргументом массива литералов является пустая строка.
- Строка ‘ яблок стоят ’, которая находится между первым и вторым блоками выражений.
- Строка, которая следует за вторым блоком ('.')
Второй аргумент равен 9, что является интерпретируемым значением переменной count. Он становится первым элементом массива подстановок.
Третий аргумент равен 80,91, что является интерпретируемым значением выражения (quantity * priceEach).toFixed(2). Он становится вторым элементом массива подстановок.
Теперь у вас должно быть хорошее представление о шаблонных строках в JavaScript и их применении, если же вам мало что понятно в данной статье? то в таком случае у меня есть для вас отличной видеокурс "JavaScript, jQuery и Ajax с Нуля до Гуру", который поможет вам разобраться во всех тонкостях JavaScript.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.