A partire da Firefox 34/Chrome 41/Safari 9/Microsoft Edge è possibile utilizzare un ES2015/funzione ES6 chiamato Template Literals e utilizzare la seguente sintassi:
`String text ${expression}`
I letterali modello sono racchiusi da back-tick (``) (accento grave) invece di virgolette singole o doppie.
Esempio:
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b}.`);
// "Fifteen is 15.
Come pulito è quello?
Bonus:
Permette anche per le stringhe multilinea in javascript, senza fuggire, che è grande per i modelli:
return `
<div class="${foo}">
...
</div>
`;
Browser support:
Poiché questa sintassi è non supportato dai browser più vecchi (Internet Explorer e Safari < = 8), potresti voler utilizzare Babel per trasporre il tuo codice in ES5 per assicurarti che funzioni ovunque.
Nota a margine:
A partire da IE8 + è possibile utilizzare stringa di base formattazione all'interno console.log
:
console.log('%s is %d.', 'Fifteen', 15);
// Fifteen is 15.
Non perdere il fatto che la stringa del modello è delimitata da spunti posteriori (\ ') al posto dei normali caratteri di citazione. '" $ {foo} "' è letteralmente $ {foo} '\' $ {pippo} \ '' è ciò che realmente vuoi – Hovis
Inoltre ci sono molti transporter per trasformare ES6 in ES5 per risolvere il problema di compatibilità! – Omid