tl; dr
Use literais de cadeia de modelo do ECMAScript 2015, se aplicável.
Explicação
Não existe uma maneira direta de fazer isso, de acordo com as especificações do ECMAScript 5, mas o ECMAScript 6 possui seqüências de modelos , que também eram conhecidas como quase literais durante a elaboração da especificação. Use-os assim:
> var n = 42;
undefined
> `foo${n}bar`
'foo42bar'
Você pode usar qualquer expressão JavaScript válida dentro do {}
. Por exemplo:
> `foo${{name: 'Google'}.name}bar`
'fooGooglebar'
> `foo${1 + 3}bar`
'foo4bar'
A outra coisa importante é que você não precisa mais se preocupar com cadeias de linhas múltiplas. Você pode escrevê-los simplesmente como
> `foo
... bar`
'foo\n bar'
Nota: Eu usei o io.js v2.4.0 para avaliar todas as sequências de modelos mostradas acima. Você também pode usar o Chrome mais recente para testar os exemplos mostrados acima.
Nota: As especificações ES6 agora estão finalizadas , mas ainda precisam ser implementadas por todos os principais navegadores.
De acordo com as páginas da Mozilla Developer Network , isso será implementado para suporte básico a partir das seguintes versões: Firefox 34, Chrome 41, Internet Explorer 12. Se você é um usuário do Opera, Safari ou Internet Explorer e está curioso sobre isso agora , essa bancada de testes pode ser usada para brincar até que todos obtenham suporte para isso.