Como já citei em outros posts, (como em: ES6 Spread Operator, Async/await, Destructuring Assignment) o ES6 apresenta algumas novidades, uma delas é o Template Strings, uma forma de declarar uma string em JavaScript.
const str1 = `teste`
console.log(str1)
Ela será o mesmo que se fizermos uma String convencional, porém podemos fazer algumas coisas extras. Exemplo: Se eu quisesse uma String multilinha, teria que fazer o seguinte:
const str1 = `teste`
const strMultiLinha = 'linha1 \n linha2'
console.log(strMultiLinha)
Ou seja, teria que utilizar o contra barra (ou scape) em todas as linhas, o que é um tanto chato.
O que pode ser feito?
Com o Template String é possível fazer simplesmente isso:
const strMultiLinha = `linha1
linha meio
linha2`
console.log(strMultiLinha)
Não é mais necessário utilizar o \n, isso deixa o código mais limpo. Outra coisa do Template String é que podemos criar uma string interpolada, ou seja, misturar uma expressão com a string que vai ser avaliada e depois colocar ela entre pólos, ao invés de concatenar. Fazemos isso apenas abrindo um \$ {expressão}, por exemplo:
const str = `Ola \$ {1 + 1} !`
console.log(str)
Obviamente também podemos colocar variáveis dentro:
const a = 10
const str = `Ola \$ {a + 1} !`
console.log(str)
Existe ainda uma outra funcionalidade interessante: utilizar algumas tags com o Template String. Exemplo: Vamos criar uma tag e ela vai receber strings e values.
function tag(strings, ...values) {
console.log(strings, values)
return 'opa'
}
const str = tag`Olá \$ {10} mundo!`
Perceba que a strings vai ter olá e mundo e o value terá o 10. Ele está entre as strings, por isso o nome interpolação. Com isso podemos criar uma tag em HTML sem grandes problemas. Uma última coisa que conseguimos fazer é checar o valor raw das variáveis apenas adicionando:
console.log(strings.raw[0])
Estamos pegando o raw da posição zero neste exemplo. Quando colocamos o raw, ele mostra exatamente como foi definido, então se você colocar um \n, será mostrado realmente o raw disso, o \n.
Confira o vídeo:
Curta o DevPleno no Facebook, inscreva-se no canal e não se esqueça de cadastrar seu e-mail para não perder as novidades. Abraço!
Mestre em Sistemas de Informação pela USP e criador do DevPleno. Iniciou sua carreira como professor com apenas 18 anos em um curso técnico, foram 11 anos em sala de aula formando desenvolvedores fullstack no sul de Minas Gerais.