edubun
Italiano

Stringhe e template literal

"5" + 3 dà "53", non 8. Quando uno dei due lati del + è una stringa, JavaScript unisce il testo invece di sommare i numeri.

Il testo in un programma

Nomi, messaggi, indirizzi, password e intere pagine web sono tutti testo, e JavaScript memorizza il testo come stringhe. Una stringa è una sequenza di caratteri tra virgolette. JavaScript accetta tre tipi di virgolette: le doppie "così", le singole 'così' e i backtick `così`. I primi due si comportano allo stesso modo. I backtick creano un template literal, che ha poteri in più spiegati più avanti.

Se il tuo testo contiene un tipo di virgolette, racchiudilo nell'altro: "It's late" funziona perché l'apostrofo non è una virgoletta doppia. Puoi anche mettere una barra rovesciata prima di una virgoletta per dire «questa fa parte del testo»: 'It\'s late'. Una barra rovesciata seguita da n, scritta \n, indica un a capo dentro la stringa.

Lunghezza e posizioni

Ogni stringa sa quanti caratteri ha: "JavaScript".length vale 10. Ogni carattere ha anche una posizione, chiamata indice, e si comincia a contare da 0, non da 1. Quindi in "JavaScript" l'indice 0 è J, l'indice 4 è S e l'ultimo indice è 9, uno in meno della lunghezza. Un singolo carattere si legge con le parentesi quadre: word[0]. Partire da 0 all'inizio sembra strano, ma quasi tutti i linguaggi di programmazione contano così, e lo ritroverai con gli array.

const word = "JavaScript";
console.log(word.length);                // 10
console.log(word[0]);                    // J
console.log(word[word.length - 1]);      // t

Metodi utili delle stringhe

Le stringhe hanno strumenti integrati chiamati metodi, che si richiamano con un punto dopo la stringa. toUpperCase() e toLowerCase() restituiscono una copia in maiuscolo o in minuscolo. includes("Script") risponde true o false a seconda che il testo compaia all'interno. slice(0, 4) restituisce i caratteri dall'indice 0 fino all'indice 4 escluso, che in "JavaScript" sono "Java". trim() toglie gli spazi da entrambe le estremità, comodo per ripulire ciò che una persona ha digitato. Nessuno di questi metodi cambia la stringa originale. In JavaScript le stringhe non si possono modificare sul posto; i metodi restituiscono sempre una stringa nuova.

Unire stringhe con +

L'operatore + unisce le stringhe una dopo l'altra, e questa operazione si chiama concatenazione. "Hello, " + "Mina" dà "Hello, Mina". Gli spazi non vengono aggiunti al posto tuo, quindi mettili tu dentro le virgolette. Ecco la trappola dell'introduzione: se uno dei due lati del + è una stringa, JavaScript trasforma anche l'altro lato in stringa e li unisce. "5" + 3 dà "53". Gli altri operatori aritmetici non uniscono il testo, quindi "5" * 2 converte "5" in numero e dà 10. Per trasformare una stringa che contiene cifre in un vero numero, usa Number("5").

Template literal

Costruire una frase con + diventa presto un pasticcio: name + " is " + age + " years old." richiede attenzione a spazi e virgolette. Un template literal, scritto tra backtick, ti permette di inserire i valori direttamente nel testo con ${ }. Ciò che sta dentro le graffe viene valutato come espressione e il risultato viene messo nella stringa. I template literal possono anche occupare più righe.

const name = "Mina";
const age = 14;
console.log(`${name} is ${age} years old.`);   // Mina is 14 years old.
console.log(`Next year: ${age + 1}`);           // Next year: 15

Esempio svolto. L'etichetta di un negozio deve dire "3 apples cost 4.5". Con const n = 3, price = 1.5; il template `${n} apples cost ${n * price}` lo fa in una riga sola, e la moltiplicazione avviene dentro le graffe.

Backtick intorno al testo, simbolo del dollaro e graffe intorno a ogni valore: `Hi ${name}`

stringTesto tra virgolette o backtick
indicePosizione di un carattere, contando da 0
.lengthQuanti caratteri ha una stringa
concatenazioneUnire stringhe con +
template literalUna stringa tra backtick con segnaposto ${ }
metodoUno strumento richiamato con un punto: word.toUpperCase()
slice(a, b)I caratteri dall'indice a fino a b escluso
sequenza di escape \nUn a capo dentro una stringa
  1. Che cosa stampa?
    console.log("5" + 3);
  2. Che cosa stampa?
    console.log("5" * 3);
  3. Che cosa stampa?
    console.log("cat".length);
  4. Che cosa stampa?
    const s = "Seoul";
    console.log(s[1]);
  5. Che cosa stampa?
    console.log("JavaScript".slice(4, 10));
  6. Che cosa stampa?
    const a = 2;
    const b = 3;
    console.log(`${a} + ${b} = ${a + b}`);
    • 2 + 3 = 5
    • ${a} + ${b} = ${a + b}
    • 2 + 3 = 23
  7. Che cosa stampa?
    console.log("Hi" + " " + "there".toUpperCase());
  8. Che cosa stampa?
    console.log("banana".includes("nan"));
    • true
    • false
  9. Che cosa stampa?
    console.log(1 + 2 + "3");
  10. Che cosa stampa?
    console.log(Number("7") + 1);
  11. Qual è l'ultimo indice di una stringa di lunghezza 6?
Punti chiave
  • Le stringhe usano le virgolette "doppie", 'singole' o i `backtick`.
  • Gli indici partono da 0; l'ultimo indice è length - 1.
  • Metodi come toUpperCase, includes, slice e trim restituiscono stringhe nuove.
  • Se uno dei due lati del + è una stringa, + unisce il testo.
  • Template literal: `testo ${espressione} testo`.
Fonti di questo corso (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Consultato il: 2026-10-17