JavaScript — Math e String

Oggetto Math · Metodi delle stringhe · Template literal · 2026 · Marco Consiglio
Volta Institute · Napoli
A.A. 2026
🔢 L'oggetto Math — la cassetta degli attrezzi matematica
Math è un oggetto globale di JavaScript che raccoglie funzioni e costanti matematiche pronte all'uso. A differenza di String o Array, non si crea mai un'istanza di Math (niente new Math()) — si usano direttamente i suoi metodi, come Math.round().
console.log(Math.PI); // → 3.141592653589793 console.log(Math.abs(-15)); // → 15 (valore assoluto, rimuove il segno negativo) console.log(Math.pow(2, 10)); // → 1024 (2 elevato alla decima potenza) console.log(Math.sqrt(64)); // → 8 (radice quadrata) console.log(Math.max(4, 19, 7)); // → 19 (il più grande tra i valori passati) console.log(Math.min(4, 19, 7)); // → 4 (il più piccolo)
💡 Math.max() e Math.min() con un array richiedono lo spread operator: Math.max(...[4,19,7]) — passarli direttamente come array non funziona.
📊 Tabella riassuntiva dei metodi Math più usati
MetodoEsempioRisultato
Math.abs(x)Math.abs(-8)8
Math.pow(x,y)Math.pow(3,2)9
Math.sqrt(x)Math.sqrt(25)5
Math.max(...)Math.max(1,5,3)5
Math.min(...)Math.min(1,5,3)1
🎲 Arrotondamento: round, floor, ceil — le differenze che contano
Questi tre metodi arrotondano un numero decimale, ma con logiche diverse — confonderli è l'errore più comune con Math.
console.log(Math.round(4.5)); // → 5 (arrotonda al più vicino: da .5 in su, arrotonda per eccesso) console.log(Math.round(4.4)); // → 4 console.log(Math.floor(4.9)); // → 4 (arrotonda sempre PER DIFETTO, verso il basso) console.log(Math.ceil(4.1)); // → 5 (arrotonda sempre PER ECCESSO, verso l'alto)
💡 Quando usare quale: floor per "pagine intere già lette" o indici di array, ceil per "quante scatole servono per contenere N oggetti" (arrotondi sempre per eccesso, non puoi avere mezza scatola), round per arrotondamenti generici (prezzi, voti).
🎰 Math.random() — generare numeri casuali
Math.random() restituisce sempre un numero decimale tra 0 (incluso) e 1 (escluso). Per ottenere un intero in un intervallo specifico, si combina con Math.floor().
console.log(Math.random()); // → es. 0.7318264... (sempre tra 0 e 1) // Formula per un numero intero casuale tra min e max (inclusi): function numeroCasuale(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } console.log(numeroCasuale(1, 6)); // → simula il lancio di un dado (1-6)
⚠️ Senza Math.floor(), Math.random() * 6 produce decimali come 4.7382 — serve sempre l'arrotondamento per ottenere un intero valido come indice o numero di dado.
✂️ Estrarre parti di una stringa
Le stringhe in JavaScript hanno molti metodi built-in per esaminarle ed estrarne parti, senza dover scrivere logica manuale carattere per carattere.
const testo = 'Volta Institute'; console.log(testo.length); // → 15 (numero di caratteri, non è un metodo ma una proprietà) console.log(testo.indexOf('Institute')); // → 6 (posizione dove inizia 'Institute') console.log(testo.includes('Volta')); // → true (contiene questa sottostringa?) console.log(testo.slice(0, 5)); // → 'Volta' (estrae dal carattere 0 al 4, il 5 escluso) console.log(testo.slice(-9)); // → 'Institute' (indici negativi contano dalla fine)
💡 indexOf vs includes: usa includes() quando ti serve solo sapere SE una sottostringa è presente (restituisce true/false), usa indexOf() quando ti serve sapere ANCHE la posizione esatta (restituisce un numero, o -1 se non trovata).
🔍 Verificare l'inizio e la fine di una stringa
const file = 'report-2026.pdf'; console.log(file.startsWith('report')); // → true console.log(file.endsWith('.pdf')); // → true console.log(file.endsWith('.docx')); // → false
✅ startsWith/endsWith sono perfetti per validare formati di file, prefissi di codici, o pattern di username — molto più leggibili di un confronto manuale di caratteri.
🔄 Trasformare una stringa
const input = ' Marco Consiglio '; console.log(input.trim()); // → 'Marco Consiglio' (rimuove spazi iniziali e finali) console.log(input.toUpperCase()); // → ' MARCO CONSIGLIO ' console.log(input.toLowerCase()); // → ' marco consiglio ' console.log(input.trim().replace('Marco', 'Luca')); // → 'Luca Consiglio'
💡 I metodi si concatenano (chaining): ogni metodo di stringa restituisce una NUOVA stringa (le stringhe originali sono immutabili), quindi puoi collegare più metodi in sequenza come sopra: .trim().replace(...).
✂️ Dividere e unire: split() e join()
const tag = 'html,css,javascript,react'; const array = tag.split(','); console.log(array); // → ['html', 'css', 'javascript', 'react'] const ricomposta = array.join(' | '); console.log(ricomposta); // → 'html | css | javascript | react'
⚠️ split() è un metodo delle STRINGHE che produce un ARRAY. join() è il contrario: un metodo degli ARRAY che produce una STRINGA. Sono spesso usati in coppia ma appartengono a tipi di dato diversi.
🧮 padStart / padEnd — riempire una stringa fino a una lunghezza
const numeroOrdine = '42'; console.log(numeroOrdine.padStart(5, '0')); // → '00042' (riempie a sinistra fino a 5 caratteri) console.log(numeroOrdine.padEnd(5, '-')); // → '42---' (riempie a destra)
✅ Utilissimo per formattare codici ordine, ID prodotto o orari (es. trasformare "9" in "09" per un orologio) sempre alla stessa lunghezza.
🧵 Template literal — comporre stringhe con variabili
I template literal (introdotti con ES6) usano i backtick ` invece degli apici normali, permettendo di inserire variabili direttamente nella stringa con ${ } — senza dover concatenare con il simbolo +.
const nome = 'Giulia'; const corso = 'Sviluppo Full Stack'; const voto = 28; // Modo vecchio, con concatenazione: const msg1 = nome + ' ha frequentato ' + corso + ' con voto ' + voto; // Modo moderno, con template literal: const msg2 = `${nome} ha frequentato ${corso} con voto ${voto}`; console.log(msg2); // → Giulia ha frequentato Sviluppo Full Stack con voto 28
💡 Dentro ${ } puoi mettere qualsiasi espressione JavaScript, non solo variabili semplici: `Il totale è ${prezzo * quantità}€` calcola l'espressione al volo.
📄 Template literal multi-riga
const email = `Gentile ${nome}, grazie per esserti iscritto al corso ${corso}. Il tuo voto finale è: ${voto}/30`; console.log(email);
✅ Con i backtick puoi scrivere stringhe su più righe semplicemente andando a capo nell'editor — con gli apici normali questo darebbe un errore di sintassi.
🧪 Playground — prova Math e String dal vivo
Scrivi codice JavaScript con Math e/o String (usa console.log()) e premi "Esegui".
Editor JS
// il risultato apparirà qui