Автор Уэйн Данкли (Front-end разработчик)
Одно из моих любимых дополнений к ES6 - шаблонные литералы или шаблонные строки, как их раньше называли. Все мы знаем, насколько болезненно создавать String, состоящий из текста, переменных и выражений. Повсюду используются одинарные кавычки, двойные кавычки и знаки плюса. См. Следующий пример кода, чтобы напомнить об ужасе.
let string = "Welcome " + name + ", your balance is " + ( oldValue + newValue );
Шаблонные литералы - это ответ ES6 на эту устаревшую головную боль. Они определяются с помощью обратных тиков ` и позволяют нам создавать строки со встроенными выражениями и переменными, как в библиотеках шаблонов, таких как Jade или Handlebars .
Заполнители используются для включения переменных в литерал шаблона, они идентифицируются с помощью знака доллара и фигурных скобок $ {}. Они оцениваются и объединяются в одну строку перед встраиванием. Приведенный выше пример с использованием шаблонных литералов выглядит так.
let string = `Welcome ${name}, your balance is ${oldValue + newValue}`
Заполнители также могут содержать выражения, которые будут оцениваться перед преобразованием в строку и внедрением.
let a = 5 let b = 4 let total = `Your total balance is ${ a + b }` console.log(total); --- Your total balance is 9
Многострочные струны
Литералы шаблона могут не только работать с несколькими строками, но также вставлять любые распознанные новые строки в выводимую строку.
let multi_line = `This is a multi-line comment, spread over 3 lines` console.log(multi_line); --- This is a multi-line comment, spread over 3 lines
При совместном использовании вы можете ясно увидеть разницу в простоте использования и удобочитаемости, которую предлагают литералы шаблонов. В приведенном ниже примере показано сравнение старого метода построения строк и нового метода с использованием шаблонных литералов.
var username = 'Dave' var current = 35 var won = 100 var bonus = 2 var template = `Hello ${ username }, your new balance is ${ current + won * bonus } points.` var string = "Hello " + username + ",\n your new balance is " + ( current + won * bonus ) + " points." console.log(template); console.log(string); --- Hello Dave, your new balance is 235 points.
Шаблонные литералы не только упрощают написание строк с переменными и встроенными выражениями, но и благодаря их повышенной удобочитаемости, несомненно, облегчают выявление ошибок до того, как они будут выведены на экран.