Em JavaScript, as template strings permitem embutir expressões em strings, recurso também chamado de interpolação de strings.
Esse recurso amplia a funcionalidade do objeto global String nativo da linguagem.
Você pode criar template strings em JavaScript envolvendo o texto entre crases. Elas não só permitem que o texto inclua novas linhas e outros caracteres especiais, como também permitem embutir 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 placeholder usado para substituição.
Qualquer tipo que não seja string é convertido implicitamente para string.
Esse assunto é abordado no conceito de conversão de tipos.
Todos os tipos de expressão 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.
Um exemplo disso é embutir um operador ternário.
Esse operador é uma forma curta de escrever uma instrução if/else.
A sintaxe é condition ? consequent-expression : alternative-expression.
Se a condição for verdadeira, o operando do lado esquerdo dos dois-pontos será retornado.
Caso contrário, o resultado da expressão ternária é o operando do lado direito dos dois-pontos.
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.
Neste exercício, você vai escrever código para ajudar uma empresa de letreiros a criar mensagens personalizadas para seus letreiros.
Implemente a função buildSign(occasion, name) que recebe uma string como parâmetro occasion e uma string com o nome de alguém como parâmetro name.
Os dois parâmetros serão embutidos em uma string de template para exibir a mensagem no letreiro.
buildSign('Birthday', 'Rob');
// => "Happy Birthday Rob!"
Implemente a função buildBirthdaySign(age) que recebe uma idade e, com base nela, determina parte da mensagem no letreiro.
Se a idade for 50 ou mais, o letreiro vai se referir à pessoa como mature; caso contrário, vai se referir a ela como young.
A saída esperada exata é mostrada abaixo:
buildBirthdaySign(50);
// => "Happy Birthday! What a mature fellow you are."
buildBirthdaySign(45);
// => "Happy Birthday! What a young fellow you are."
Implemente a função graduationFor(name, year) que recebe um nome como parâmetro do tipo string e um ano como parâmetro do tipo número, e usa interpolação de string para criar uma frase para um letreiro que usa uma quebra de linha para separar as duas linhas da mensagem.
graduationFor('Hannah', 2022);
/* => "Congratulations Hannah!
Class of 2022"
*/
Implemente a função costOf(sign, currency) que recebe uma string com o conteúdo do letreiro e uma string que representa a moeda.
O letreiro tem um preço base de 20 na moeda informada. Além disso, cada letra custa 2. (Os espaços em branco entram no cálculo.)
A frase retornada inclui o custo de criação do letreiro, escrito com dois dígitos após o ponto decimal, seguido da string da moeda.
costOf('Happy Birthday Rob!', 'dollars');
// => "Your sign costs 58.00 dollars."
Crie sua conta no Exercism para aprender e dominar JavaScript com 37 conceitos159 exercícios e mentoria humana de verdade, tudo de graça.