Vai al contenuto
eLearner.app
Modulo 2 · Lezione 1 di 45/32 nel corso~8 min
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:

JS
'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:

JS
'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
JS
console.log('riga 1\nriga 2');
// riga 1
// riga 2

Template literal: la sintassi che vuoi usare di default

I backtick sbloccano due cose impossibili con gli altri delimitatori:

  1. Stringhe multilinea senza escape: a capo letterali sono permessi.
  2. Interpolazione: dentro ${ … } puoi inserire qualsiasi espressione JS e il suo valore viene incollato nel risultato.
JS
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):

JS
const a = 'Ciao';
const b = 'mondo';
a + ', ' + b + '!'; // 'Ciao, mondo!'

Prova tu

Esercizio#js.m2.l1.e1
Tentativi: 0Caricamento…

Dati `name = 'Luca'` ed `age = 30`, componi con un template literal la stringa 'Luca ha 30 anni.' (esattamente questo testo) come ultima espressione.

Caricamento editor…
Mostra suggerimento

Usa i backtick e l'interpolazione ${...} per inserire i valori dentro la stringa.

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#js.m2.l1.e2
Tentativi: 0Caricamento…

Dati due prezzi `p1 = 7.5` e `p2 = 3.20`, restituisci come ultima espressione la stringa 'Totale: 10.7 euro'.

Caricamento editor…
Mostra suggerimento

Dentro ${...} puoi mettere qualsiasi espressione, anche p1 + p2.

Soluzione disponibile dopo 3 tentativi