Lezioni del modulo (1/4)
Stringhe e template literal
Le stringhe sono sequenze di caratteri. In JavaScript le puoi delimitare in tre modi, tutti equivalenti per il motore — ma con un superpotere riservato ai backtick:
'apici singoli';
'apici doppi';
`backtick — i template literal`;Apici singoli e doppi sono intercambiabili: usa quello che ti permette di non dover fare escape nel testo che contiene l'altro carattere:
'L\'isola'; // l'apostrofo richiede escape
"L'isola"; // qui no
"Lui disse \"ciao\"";
'Lui disse "ciao"';Caratteri di escape
Dentro qualsiasi stringa puoi inserire caratteri "non stampabili" con la backslash:
\n— a capo\t— tabulazione\\— una backslash letterale\'/\"— apice singolo / doppio letterale
console.log('riga 1\nriga 2');
// riga 1
// riga 2Template literal: la sintassi che vuoi usare di default
I backtick sbloccano due cose impossibili con gli altri delimitatori:
- Stringhe multilinea senza escape: a capo letterali sono permessi.
- Interpolazione: dentro
${ … }puoi inserire qualsiasi espressione JS e il suo valore viene incollato nel risultato.
const nome = 'Anna';
const eta = 28;
const messaggio = `Ciao ${nome}, hai ${eta} anni.
Fra un anno ne avrai ${eta + 1}.`;L'espressione dentro ${ … } non deve essere un nome semplice: può essere
qualunque cosa che produca un valore, comprese chiamate a funzione e operatori.
Concatenazione con +
Storicamente le stringhe si componevano con +. Funziona ancora, ed è utile
in rari casi (es. costruire una stringa in più passi):
const a = 'Ciao';
const b = 'mondo';
a + ', ' + b + '!'; // 'Ciao, mondo!'Prova tu
Dati `name = 'Luca'` ed `age = 30`, componi con un template literal la stringa 'Luca ha 30 anni.' (esattamente questo testo) come ultima espressione.
Mostra suggerimento
Usa i backtick e l'interpolazione ${...} per inserire i valori dentro la stringa.
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Dati due prezzi `p1 = 7.5` e `p2 = 3.20`, restituisci come ultima espressione la stringa 'Totale: 10.7 euro'.
Mostra suggerimento
Dentro ${...} puoi mettere qualsiasi espressione, anche p1 + p2.
Soluzione disponibile dopo 3 tentativi