HTML CSS JAVASCRIPT SQL MYSQL PYTHON JAVA PHP C C++ C# PACKET TRACER CYBERSECURITY REACTTYPESCRIPTNODE.JSGIT & GITHUBDATA SCIENCEBOOTSTRAPGOKOTLINJQUERYDJANGOVUEANGULAR MONGODB POSTGRESQL SASS NUMPY PANDAS SCIPY DSA RUST SWIFT BASHXMLW3.CSSANGULARJSAIAWSPROGRAMMAZIONEEXCEL WORD POWERPOINT
Corso gratuito · Interattivo

Corso di JavaScript completo in italiano

Impara JavaScript da zero con la guida più completa in italiano: tutti gli argomenti dalle variabili agli oggetti, dagli array al DOM, fino a RegExp, Set, Map ed eventi. Ogni capitolo ha esempi col codice colorato e l'editor “Provalo tu” che esegue davvero il codice.

Corso di JavaScript completo in italiano

Benvenuto nel corso di JavaScript più completo in italiano. JavaScript è il linguaggio di programmazione del web: rende le pagine interattive e dinamiche ed è oggi usato anche fuori dal browser (server, app, giochi) grazie a Node.js.

In questo corso trovi tutti gli argomenti, dalle variabili agli oggetti, dagli array alle espressioni regolari, fino alla manipolazione della pagina (DOM) e agli eventi. Ogni capitolo ha esempi col codice colorato e l'editor “Provalo tu” che esegue davvero il codice nel browser.

💡 HTML, CSS e JavaScript: l'HTML è la struttura, il CSS è l'aspetto e JavaScript è il comportamento. Insieme formano le basi dello sviluppo web.
Esempio

Introduzione a JavaScript

JavaScript nasce nel 1995 e oggi è uno dei linguaggi più usati al mondo. Gira direttamente nel browser, quindi non serve installare nulla per iniziare. Permette di reagire ai clic, validare i form, aggiornare i contenuti senza ricaricare la pagina e molto altro.

  • È un linguaggio interpretato (eseguito riga per riga).
  • È dinamico: le variabili possono cambiare tipo.
  • Funziona ovunque: browser, server (Node.js), app mobili e desktop.

Dove inserire JavaScript

Il codice JavaScript si inserisce nell'elemento <script>. Può stare nel <head>, nel <body> (di solito alla fine, per caricare prima i contenuti) oppure in un file esterno .js collegato con <script src="file.js">.

⭐ Mettere lo script appena prima di </body> velocizza il caricamento: la pagina appare subito e poi parte il codice.
Esempio

Mostrare i risultati (output)

JavaScript può mostrare i dati in vari modi: document.write() (scrive nella pagina), innerHTML (cambia il contenuto di un elemento), alert() (finestra pop-up), console.log() (nella console per sviluppatori, ottimo per il debug).

Esempio

La sintassi e le variabili

Le variabili memorizzano dati e si dichiarano con let (modificabili), const (costanti) o var (vecchio stile). Le istruzioni terminano con il punto e virgola. JavaScript distingue maiuscole e minuscole.

Esempio

Gli operatori

Gli operatori principali:

  • Aritmetici: + - * / % **
  • Assegnazione: = += -= *=
  • Confronto: == === != > < >= <=
  • Logici: && (e), || (o), ! (non)
💡 Usa sempre === (uguaglianza stretta) invece di ==: confronta valore e tipo, evitando sorprese.
Esempio

Le condizioni (if/else)

Le condizioni eseguono codice diverso a seconda di un test. Si usano if, else if, else, e lo switch per molti casi. Esiste anche l'operatore ternario condizione ? a : b.

Esempio

I cicli (for, while)

I cicli ripetono istruzioni. Il for per un numero noto di volte, il while finché una condizione è vera, il for...of per scorrere gli array, il for...in per gli oggetti. break interrompe, continue salta un giro.

Esempio

Le stringhe

Le stringhe sono testo tra apici. Hanno proprietà e metodi utili: length, toUpperCase(), toLowerCase(), indexOf(), slice(), replace(), split(). I template literal con i backtick permettono di inserire variabili con ${...}.

Esempio

I numeri

JavaScript ha un unico tipo numerico (interi e decimali). Metodi utili: toFixed(n) (decimali), parseInt() e parseFloat() (da stringa a numero), Number(), isNaN() (verifica “non è un numero”).

Esempio

Le funzioni

Una funzione è un blocco riutilizzabile che riceve parametri e può restituire un valore con return. Si possono scrivere come dichiarazione, come espressione o come arrow function (=>), la forma moderna più compatta.

Esempio

Gli oggetti

Un oggetto raggruppa dati correlati in coppie chiave: valore (le proprietà) e può contenere funzioni (i metodi). Si accede con la notazione punto oggetto.proprietà.

Esempio

Lo scope (visibilità)

Lo scope determina dove una variabile è accessibile. Le variabili let e const hanno scope di blocco (valgono solo tra le graffe in cui sono dichiarate); quelle dichiarate fuori da ogni funzione sono globali. Limitare lo scope evita errori e conflitti.

Esempio

Le date

L'oggetto Date gestisce date e orari. Si crea con new Date() e offre metodi come getFullYear(), getMonth(), getDate(), getHours().

Esempio

Temporal (nuova API date)

Temporal è la nuova API moderna per gestire date e orari, pensata per risolvere i limiti storici dell'oggetto Date (fusi orari, calcoli, immutabilità). È ancora in fase di adozione nei browser, ma rappresenta il futuro della gestione del tempo in JavaScript.

🆕 Argomento avanzato e recente: per ora, nei progetti reali, si usa ancora Date o librerie come date-fns.

Gli array

Gli array sono liste ordinate di valori, indicizzate da 0. Metodi fondamentali: push()/pop() (fine), shift()/unshift() (inizio), map(), filter(), forEach(), find(), length.

Esempio

I Set (insiemi)

Un Set è una collezione di valori unici: i duplicati vengono ignorati automaticamente. Utile per eliminare i doppioni da un array. Metodi: add(), has(), delete(), size.

Esempio

Le Map (mappe)

Una Map associa chiavi a valori, come un oggetto, ma le chiavi possono essere di qualsiasi tipo e mantiene l'ordine di inserimento. Metodi: set(), get(), has(), delete(), size.

Esempio

Le iterazioni

Iterare significa scorrere gli elementi di una collezione. Oltre ai cicli classici, JavaScript offre forEach() per gli array, for...of per i valori e for...in per le chiavi degli oggetti.

Esempio

L'oggetto Math

L'oggetto Math offre funzioni matematiche: Math.round() (arrotonda), Math.floor()/Math.ceil() (giù/su), Math.sqrt() (radice), Math.max()/Math.min(), Math.random() (numero casuale tra 0 e 1).

Esempio

Le espressioni regolari (RegExp)

Le espressioni regolari descrivono schemi di testo per cercare, validare o sostituire. Si scrivono tra slash /schema/ e si usano con metodi come test() (verifica) e replace(). Utilissime per validare email, telefoni, password.

Esempio

I tipi di dato

I tipi primitivi sono: string (testo), number (numeri), boolean (true/false), undefined, null, bigint e symbol. Poi ci sono gli object (array, oggetti, funzioni). L'operatore typeof rivela il tipo di un valore.

Esempio

La gestione degli errori

Per gestire gli errori senza bloccare il programma si usa try...catch: il codice rischioso va nel try, e se genera un errore viene eseguito il catch. Con throw si possono lanciare errori personalizzati e con finally si esegue del codice in ogni caso.

Esempio

Il debugging

Il debugging è la ricerca e correzione degli errori. Strumenti principali: console.log() per ispezionare i valori, gli strumenti per sviluppatori del browser (tasto F12), i breakpoint per fermare l'esecuzione riga per riga, e l'istruzione debugger.

⭐ Apri la Console del browser con F12 e prova a stampare variabili con console.log(): è il primo strumento di ogni programmatore.

Le buone pratiche (style guide)

Scrivere codice ordinato lo rende leggibile e mantenibile:

  • Nomi di variabili chiari e in camelCase.
  • Usa const di default, let se serve modificare; evita var.
  • Indentazione coerente (2 o 4 spazi) e punto e virgola.
  • Commenta il perché, non l'ovvio.

Le versioni (ES6 e oltre)

JavaScript segue lo standard ECMAScript. La svolta è stata ES6 (2015), che ha introdotto let/const, le arrow function, i template literal, le classi e i moduli. Da allora esce una versione ogni anno (ES2016, ES2017, …) con nuove funzionalità.

Il DOM (modificare la pagina)

Il DOM (Document Object Model) è la rappresentazione ad albero della pagina HTML. Con JavaScript puoi selezionare elementi (getElementById, querySelector) e modificarne contenuto (innerHTML), stile (style) e attributi.

Esempio

Gli eventi

Gli eventi sono azioni a cui la pagina può reagire: clic (click), passaggio del mouse (mouseover), pressione di tasti (keydown), invio di un form (submit). Si gestiscono con attributi come onclick o, meglio, con addEventListener().

Esempio

JS HTML First — prima l'HTML, poi JavaScript

Una regola d'oro per chi inizia: prima si costruisce la pagina con l'HTML, poi la si rende interattiva con JavaScript. JavaScript non disegna la struttura: la manipola. Per questo conviene sempre avere già pronti gli elementi HTML (con i loro id) e solo dopo agganciarli con il codice.

Esempio
⭐ Metti il tag <script> appena prima di </body>: così l'HTML è già caricato quando JavaScript va a cercarlo.

JS Functions avanzate

Le funzioni in JavaScript sono valori a tutti gli effetti: puoi assegnarle a variabili, passarle come argomento e restituirle. Da qui nascono le arrow function, le callback e le closure.

Esempio
💡 Una closure è una funzione che continua ad accedere alle variabili del punto in cui è stata creata, anche dopo che quella funzione esterna è terminata.

JS Objects avanzati

Gli oggetti raggruppano dati (proprietà) e comportamenti (metodi). In JavaScript avanzato usi destructuring, spread e i metodi di Object per lavorarci comodamente.

Esempio

JS Classes

Le classi sono modelli per creare oggetti dello stesso tipo. Il constructor inizializza le proprietà, e con extends una classe può ereditare da un'altra.

Esempio

JS Asynchronous (Promise, async/await)

JavaScript è asincrono: alcune operazioni (come scaricare dati) richiedono tempo e non bloccano il resto del codice. Si gestiscono con le Promise e la sintassi moderna async/await.

Esempio
await mette in pausa la funzione finché la Promise non si risolve, rendendo il codice asincrono leggibile come quello normale.

JS Modules

I moduli permettono di dividere il codice in più file e riutilizzarlo con export e import. Si attivano con <script type="module">.

// file utili.js
export function somma(a, b){ return a + b; }

// file main.js
import { somma } from './utili.js';
console.log( somma(2, 3) );  // 5
💡 I moduli evitano di avere un unico file enorme e prevengono conflitti tra variabili con lo stesso nome.

JS Meta & Proxy

Un Proxy è un oggetto che “avvolge” un altro oggetto e intercetta le operazioni (lettura, scrittura) tramite dei trap. Insieme a Reflect è la base della meta-programmazione in JavaScript.

Esempio

JS Typed Arrays

Gli array tipizzati (come Int8Array, Float32Array) gestiscono dati binari grezzi in modo efficiente: utili per grafica, audio, file e prestazioni elevate.

const numeri = new Int16Array(3);  // tre interi a 16 bit
numeri[0] = 100;
numeri[1] = 250;
console.log(numeri.length);  // 3

JS DOM Navigation

Il DOM è un albero: da ogni nodo puoi spostarti verso genitori, figli e fratelli per leggere o modificare la pagina.

ProprietàRestituisce
parentElementIl genitore dell'elemento
childrenI figli (solo elementi)
firstElementChildIl primo figlio
nextElementSiblingIl fratello successivo

JS Windows (oggetto window e BOM)

L'oggetto window rappresenta la finestra del browser (BOM, Browser Object Model). Da qui accedi a dimensioni dello schermo, URL, cronologia, timer e finestre di dialogo.

MembroCosa fa
window.innerWidthLarghezza della finestra
window.locationURL della pagina
window.historyCronologia di navigazione
setTimeout() / setInterval()Timer
alert() / prompt()Finestre di dialogo

JS Web API

Le Web API sono funzionalità che il browser mette a disposizione di JavaScript, oltre al linguaggio in sé: Web Storage, Fetch, Geolocation, Canvas, Web Workers e molte altre.

Esempio — Web Storage API

JS AJAX (Fetch API)

AJAX permette di caricare dati dal server senza ricaricare la pagina. Oggi si usa la moderna fetch(), che restituisce una Promise.

fetch('https://api.example.com/dati')
  .then(risposta => risposta.json())
  .then(dati => console.log(dati))
  .catch(errore => console.log('Errore:', errore));

// versione con async/await
async function carica(){
  const r = await fetch('/dati');
  const dati = await r.json();
  console.log(dati);
}
💡 AJAX significa “Asynchronous JavaScript And XML”, ma oggi i dati viaggiano quasi sempre in formato JSON.

JS JSON

JSON (JavaScript Object Notation) è il formato standard per scambiare dati sul web. Si converte con JSON.stringify() (oggetto → testo) e JSON.parse() (testo → oggetto).

Esempio

JS jQuery

jQuery è una storica libreria JavaScript che semplifica selezione di elementi, eventi e animazioni con la sintassi $(). Oggi il JavaScript moderno copre quasi tutto, ma jQuery si incontra ancora in molti progetti esistenti.

// jQuery
$('#btn').click(function(){
  $('#out').text('Cliccato!');
});

// JavaScript moderno equivalente
document.getElementById('btn').onclick = () => {
  document.getElementById('out').textContent = 'Cliccato!';
};
⭐ Impara prima il JavaScript “puro”: capirai jQuery in pochi minuti e saprai quando (non) serve.

JS Graphics (Canvas)

Con JavaScript e l'elemento <canvas> puoi disegnare grafica, grafici e semplici giochi direttamente nel browser.

Esempio

Esempi JavaScript pronti da copiare

Il modo migliore per imparare JavaScript è partire da esempi già funzionanti: copiali, aprili nell'editor “Provalo tu” e modificali. Ogni esempio di questo corso è anche un piccolo esercizio.

Contatore di clic

Editor JavaScript online (Provalo tu)

Su questo corso hai un editor JavaScript online gratuito integrato. Ogni esempio ha il pulsante “Provalo tu ▶” che apre l'editor a schermo intero, con il codice da una parte e il risultato dall'altra.

  1. Clicca “Provalo tu” su un esempio.
  2. Modifica il codice JavaScript dentro il blocco <script>.
  3. Premi ▶ Esegui e guarda subito il risultato.

Quiz JavaScript — metti alla prova le tue conoscenze

Un breve quiz di JavaScript per autovalutarti. Pensa alla risposta e poi apri la soluzione.

1. Quale parola chiave dichiara una variabile che non cambia?

const. Per variabili che cambiano si usa let.

2. Come si seleziona un elemento per id?

document.getElementById('nome') oppure document.querySelector('#nome').

3. Cosa restituisce typeof []?

"object" — in JavaScript gli array sono oggetti. Per verificarli si usa Array.isArray().

4. Differenza tra == e ===?

== confronta i valori convertendo i tipi; === confronta valore e tipo (consigliato).

5. Cosa fa array.map()?

✅ Crea un nuovo array trasformando ogni elemento di quello originale.

Esercizi JavaScript con soluzioni (per principianti)

Questi esercizi di JavaScript svolti sono pensati per chi vuole fare pratica con esempi reali. Per ognuno c'è la consegna e la soluzione commentata: prova prima da solo, poi confronta. Sono gli stessi esercizi di JavaScript che assegno ai miei studenti durante le ripetizioni a Roma.

Esercizio 1 — Saluto personalizzato Base

Chiedi il nome all'utente con prompt() e mostra un saluto.

Mostra soluzione
const nome = prompt("Come ti chiami?");
alert("Ciao " + nome + "!");

Esercizio 2 — Pari o dispari Base

Scrivi una funzione che dato un numero restituisce "pari" o "dispari".

Mostra soluzione
function pariDispari(n){
  return n % 2 === 0 ? "pari" : "dispari";
}
console.log( pariDispari(7) );  // dispari

Esercizio 3 — Somma di un array Medio

Calcola la somma di tutti i numeri di un array.

Mostra soluzione
const numeri = [4, 8, 15, 16, 23, 42];
const somma = numeri.reduce((tot, n) => tot + n, 0);
console.log(somma);  // 108

Esercizio 4 — Cambia testo al clic Medio

Quando si clicca un pulsante, cambia il testo di un paragrafo.

Mostra soluzione
<button id="btn">Cambia</button>
<p id="out">Testo iniziale</p>
<script>
  document.getElementById('btn').onclick = function(){
    document.getElementById('out').textContent = 'Testo cambiato!';
  };
</script>

Esercizio 5 — Filtra i maggiorenni Avanzato

Da un array di oggetti persona, estrai solo chi ha 18 anni o più.

Mostra soluzione
const persone = [
  { nome: "Sara", eta: 17 },
  { nome: "Luca", eta: 20 },
  { nome: "Gio", eta: 25 }
];
const adulti = persone.filter(p => p.eta >= 18);
console.log(adulti);  // Luca e Gio
⭐ Apri ogni soluzione nell'editor “Provalo tu” e modificala: cambiare il codice è il modo migliore per fissare i concetti.

Sfide JavaScript — esercizi avanzati senza soluzione

Le sfide JavaScript sono esercizi più impegnativi, senza soluzione data: l'obiettivo è ragionare e costruire da soli.

🎯 Sfida 1 — To-do list

Crea una lista di cose da fare: aggiungi attività, spuntale come completate e salvale nel localStorage così restano dopo aver chiuso il browser.

🎯 Sfida 2 — Calcolatrice

Realizza una calcolatrice funzionante con i quattro operatori, gestendo anche la divisione per zero.

🎯 Sfida 3 — Orologio digitale

Mostra l'ora corrente che si aggiorna ogni secondo usando setInterval e l'oggetto Date.

Programma del corso JavaScript (syllabus)

Questo è il programma completo del corso di JavaScript, l'elenco ordinato degli argomenti dal principiante all'avanzato. È lo stesso syllabus che seguo in classe e nelle ripetizioni.

  1. Basi: sintassi, variabili, operatori, condizioni e cicli.
  2. Dati: stringhe, numeri, array, oggetti, set e map.
  3. Funzioni: funzioni, scope, arrow function e closure.
  4. DOM ed eventi: selezionare e modificare la pagina, gestire i clic.
  5. Avanzato: classi, asincronia, moduli, JSON, Fetch/AJAX, Web API.
  6. Pratica: esempi, esercizi, sfide e mini-progetti interattivi.

Piano di studio JavaScript

Quanto ci vuole per imparare JavaScript? Le basi in una/due settimane. Ecco un piano di studio realistico studiando circa un'ora al giorno.

GiornoCosa studiare
1–2Sintassi, variabili, operatori, condizioni
3Cicli, stringhe e numeri
4Array e oggetti
5Funzioni, scope e arrow function
6DOM ed eventi
7Asincronia, JSON, esercizi e sfide

Preparazione al colloquio — domande JavaScript frequenti

Le domande di JavaScript più frequenti ai colloqui per ruoli web (front-end). Utili anche per le interrogazioni a scuola.

Differenza tra var, let e const?

var è vecchio e ha scope di funzione; let e const hanno scope di blocco. const non si riassegna.

Cos'è una closure?

Una funzione che mantiene accesso alle variabili del contesto in cui è stata creata, anche dopo la fine di quella funzione esterna.

Cosa significa che JavaScript è asincrono?

Operazioni lunghe (rete, timer) non bloccano il codice: si gestiscono con callback, Promise e async/await.

Differenza tra null e undefined?

undefined: variabile dichiarata ma senza valore; null: assenza di valore impostata volontariamente.

Bootcamp JavaScript — percorso intensivo

Un bootcamp JavaScript condensa la teoria nella pratica continua. Per imparare velocemente, alterna ogni argomento con un esercizio immediato:

  • Studia un argomento (max 20 minuti).
  • Riproduci l'esempio nell'editor “Provalo tu”.
  • Svolgi un esercizio collegato senza guardare la soluzione.
  • Ripeti con l'argomento successivo.
💡 Vuoi un bootcamp JavaScript seguito di persona a Roma? Con le ripetizioni in presenza costruiamo insieme un percorso su misura, dalla prima variabile alla prima web app.

Riferimento — Metodi delle stringhe

MetodoCosa fa
lengthNumero di caratteri
toUpperCase()Tutto maiuscolo
includes()Verifica se contiene un testo
slice()Estrae una porzione
replace()Sostituisce del testo
split()Divide in un array

Riferimento — Metodi degli array

MetodoCosa fa
push() / pop()Aggiunge / rimuove in fondo
map()Trasforma ogni elemento
filter()Tiene solo gli elementi che superano un test
reduce()Riduce a un singolo valore (es. somma)
find()Trova il primo elemento che corrisponde
forEach()Esegue una funzione per ogni elemento

Riferimento — Metodi dei numeri

MetodoCosa fa
toFixed(2)Arrotonda a N decimali
parseInt()Testo → numero intero
parseFloat()Testo → numero decimale
Number.isInteger()Verifica se è un intero

Riferimento — Oggetto Math

FunzioneCosa fa
Math.round()Arrotonda all'intero più vicino
Math.floor() / Math.ceil()Arrotonda per difetto / eccesso
Math.random()Numero casuale tra 0 e 1
Math.max() / Math.min()Massimo / minimo

Riferimento — Metodi delle date

MetodoRestituisce
new Date()Data e ora attuali
getFullYear()L'anno
getMonth()Il mese (0–11)
getDate()Il giorno del mese
getHours()L'ora

Riferimento — Metodi del DOM

MetodoCosa fa
getElementById()Seleziona per id
querySelector()Seleziona con un selettore CSS
createElement()Crea un nuovo elemento
appendChild()Aggiunge un figlio
addEventListener()Aggancia un evento

Riferimento — Eventi JavaScript

EventoQuando scatta
clickAl clic
inputMentre si digita in un campo
submitAll'invio di un form
keydownAlla pressione di un tasto
loadAl caricamento della pagina

Riferimento — Operatori JavaScript

OperatoreSignificato
=== / !==Uguaglianza / diversità stretta
&& / ||AND / OR logici
?:Operatore ternario (if compatto)
??Valore di riserva se null/undefined
...Spread / rest

Riferimento — Parole chiave JavaScript

Parola chiaveUso
let / constDichiarare variabili
functionDefinire una funzione
returnRestituire un valore
if / elseCondizioni
for / whileCicli
class / extendsClassi ed ereditarietà
async / awaitCodice asincrono

Certificato JavaScript

Vuoi una certificazione di JavaScript da mostrare nel CV? Al termine di questo corso hai le competenze per affrontare i test di certificazione online più diffusi e, soprattutto, per costruire pagine e app web interattive reali.

Se sei un mio studente, posso rilasciarti un attestato di partecipazione al percorso di JavaScript svolto durante le ripetizioni in presenza a Roma, con l'elenco degli argomenti e dei progetti realizzati.

⭐ Il vero “certificato” è il tuo portfolio: una web app che hai costruito da solo vale più di qualsiasi attestato.

Conclusione

Complimenti! 🎉 Hai completato il corso di JavaScript completo e gratuito in italiano: dalle basi (variabili, condizioni, cicli) ad array e oggetti, dal DOM e gli eventi fino a classi, asincronia, moduli, JSON, Fetch/AJAX e Web API, con esercizi, sfide e riferimenti. Ora sai rendere interattiva qualsiasi pagina web.

Il modo migliore per imparare JavaScript è fare pratica ogni giorno: rifai gli esercizi JavaScript, affronta le sfide e prova a costruire una piccola web app.

E ora?

Con HTML, CSS e JavaScript hai la triade completa dello sviluppo web front-end. Il prossimo passo è approfondire framework moderni o il back-end (database, server). Se vuoi un percorso guidato passo passo o aiuto per una verifica, posso seguirti con le ripetizioni di informatica in presenza a Roma.

🎯 La tua sfida finale

Costruisci una piccola to-do list: aggiungi attività, spuntale come completate e salvale nel localStorage così restano anche dopo aver chiuso il browser.

✏️ Provalo tu — scrivi e guarda il risultato
Anteprima