In JavaScript, le stringhe interpolate permettono di incorporare espressioni all'interno delle stringhe; questa tecnica è nota anche come interpolazione di stringhe.
Questa funzionalità estende le capacità dell'oggetto globale String integrato.
In JavaScript puoi creare stringhe interpolate racchiudendo il testo tra backtick. Non solo permettono al testo di includere a capo e altri caratteri speciali: puoi anche incorporare variabili e altre espressioni.
const num1 = 1;
const num2 = 2;
`Adding ${num1} and ${num2} gives ${num1 + num2}.`;
// => Adding 1 and 2 gives 3.
Nell'esempio qui sopra, i backtick (``) servono a rappresentare una stringa interpolata. Il ${...} è il segnaposto usato per la sostituzione.
Qualsiasi tipo non stringa viene convertito implicitamente in stringa.
Questo argomento è trattato nel concetto conversione di tipo.
Con le stringhe interpolate puoi usare tutti i tipi di espressione.
const track = 'JavaScript';
`This track on exercism.org is ${track.toUpperCase()}.`;
// => This track on exercism.org is JAVASCRIPT.
Quando hai bisogno di formattare una stringa su più righe:
`This is an example of using template
strings to accomplish multiple
lines`;
Grazie alle possibilità di sostituzione disponibili, puoi anche introdurre della logica nel processo per determinare quale debba essere la stringa di output.
Un esempio è l'incorporamento di un operatore ternario.
Questo operatore è una forma abbreviata per scrivere un'istruzione if/else.
La sintassi è condition ? consequent-expression : alternative-expression.
Se la condizione è truthy, viene restituito l'operando a sinistra dei due punti.
Altrimenti, il risultato dell'espressione ternaria è l'operando a destra dei due punti.
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.
In questo esercizio scriverai del codice per aiutare un'azienda di insegne a creare messaggi personalizzati per le sue insegne.
Implementa la funzione buildSign(occasion, name) che accetta una stringa come parametro occasion e una stringa contenente il nome di qualcuno come parametro name.
I due parametri verranno inseriti in una stringa interpolata per produrre il messaggio sull'insegna.
buildSign('Birthday', 'Rob');
// => "Happy Birthday Rob!"
Implementa la funzione buildBirthdaySign(age) che accetta un'età e, in base all'età, determinerà parte del messaggio sull'insegna.
Se l'età è 50 o più, l'insegna si riferirà all'utente come mature, altrimenti come young.
L'output esatto previsto è mostrato di seguito:
buildBirthdaySign(50);
// => "Happy Birthday! What a mature fellow you are."
buildBirthdaySign(45);
// => "Happy Birthday! What a young fellow you are."
Implementa la funzione graduationFor(name, year) che accetta un nome come parametro stringa e un anno come parametro numerico e usa l'interpolazione di stringhe per creare una frase per un'insegna che usa un carattere di nuova riga per separare le due righe del messaggio.
graduationFor('Hannah', 2022);
/* => "Congratulations Hannah!
Class of 2022"
*/
Implementa la funzione costOf(sign, currency) che prende una stringa che contiene il contenuto dell'insegna e una stringa che rappresenta la valuta.
L'insegna ha un prezzo base di 20 nella valuta indicata. Inoltre, ogni lettera costa 2. (Gli spazi bianchi sono inclusi nel calcolo.)
La frase restituita include il costo per creare l'insegna, scritto con due cifre dopo il separatore decimale, seguito dalla stringa della valuta.
costOf('Happy Birthday Rob!', 'dollars');
// => "Your sign costs 58.00 dollars."
Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.