Em JavaScript, as template strings permitem inserir expressões em strings, o que também é chamado de interpolação de strings.
Esse recurso amplia a funcionalidade do objeto global String.
Você pode criar template strings em JavaScript envolvendo o texto em crases. Elas não apenas permitem que o texto inclua novas linhas e outros caracteres especiais, como também permitem inserir variáveis e outras expressões.
const num1 = 1;
const num2 = 2;
`Adding ${num1} and ${num2} gives ${num1 + num2}.`;
// => Adding 1 and 2 gives 3.
No exemplo acima, usamos crases (``) para representar uma template string. O ${...} é o espaço reservado usado para substituição.
Quaisquer tipos que não sejam string são convertidos em strings implicitamente.
Esse assunto é abordado no conceito de conversão de tipos.
Todos os tipos de expressões podem ser usados com template strings.
const track = 'JavaScript';
`This track on exercism.org is ${track.toUpperCase()}.`;
// => This track on exercism.org is JAVASCRIPT.
Quando você precisa formatar strings em várias linhas:
`This is an example of using template
strings to accomplish multiple
lines`;
Com os recursos de substituição disponíveis, você também pode introduzir lógica no processo para determinar qual deve ser a string de saída.
Uma forma de lidar com essa lógica é usar o operador ternário.
Ele oferece a mesma funcionalidade condicional if/else, em um formato um pouco diferente.
Para implementar lógica na sintaxe das template strings:
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.