JavaScript è il linguaggio del web
JavaScript è il linguaggio di programmazione che gira dentro i browser web. Quando una pagina reagisce a un clic, valida un modulo, anima un menu o carica nuovi contenuti senza ricaricarsi, quello è JavaScript. Ogni browser su ogni dispositivo include un motore JavaScript integrato, e questo lo rende l'unico linguaggio che gira nativamente sul web.
Oggi gira anche fuori dal browser. Node.js, Deno e Bun ti permettono di usare JavaScript per server, strumenti da riga di comando, script di build e API. Lo stesso linguaggio fa funzionare il frontend e il backend, ed è una delle ragioni principali per cui è così diffuso.
Un piccolo assaggio di come appare JavaScript:
Tre righe, tre idee: dichiarare una variabile, chiamare una funzione integrata, stampare una stringa costruita con un template. Le vedrai tutte e tre in ogni pagina di codice JavaScript reale.
Dove gira JavaScript
JavaScript in sé è solo una specifica del linguaggio (chiamata ECMAScript). Per eseguirlo davvero ti serve un motore: un programma che legge il tuo codice e lo esegue. I due che incontrerai:
- Browser. Chrome ed Edge usano V8. Firefox usa SpiderMonkey. Safari usa JavaScriptCore. Apri una pagina, premi F12 e incolla del JavaScript nella scheda Console: viene eseguito all'istante.
- Node.js. Porta V8 fuori dal browser e gli dà accesso al file system, alla rete e al sistema operativo. È questo che rende possibile JavaScript lato server.
// Eseguilo nella console del browser:
document.title = "Nuovo titolo della scheda";
// Eseguilo con Node.js:
// $ node script.js
Il JavaScript nel browser può agire sulla pagina (il DOM), ma non sul tuo file system. Il JavaScript in Node.js può leggere file e aprire socket, ma non ha nessuna pagina da manipolare. Stesso linguaggio, superpoteri diversi.
A cosa serve JavaScript
La risposta breve: quasi a tutto ciò che tocca il web. La risposta lunga, più o meno nell'ordine in cui li incontrerai:
- Pagine web interattive. Validazione dei moduli, menu a tendina, finestre modali, ricerca in tempo reale, drag and drop.
- Single-page app. Gmail, Figma, Notion, Linear: intere applicazioni disegnate e aggiornate da JavaScript, di solito tramite un framework come React, Vue o Svelte.
- Server backend. API REST, endpoint GraphQL e servizi in tempo reale costruiti con Node.js, Express, Fastify o NestJS.
- Strumenti di build e sviluppo. Bundler (Vite, esbuild, webpack), linter (ESLint), test runner (Vitest, Jest).
- App multipiattaforma. App desktop tramite Electron (VS Code, Slack, Discord) e app mobili tramite React Native.
Non devi sapere tutto questo dal primo giorno. Vale la pena sapere che esiste, così l'espressione "è solo JavaScript" non suona come un limite.
Come gira davvero JavaScript
Un modello mentale molto semplificato: scrivi il codice sorgente, il motore lo analizza trasformandolo in una rappresentazione interna e poi lo esegue. I motori moderni usano la compilazione JIT (just-in-time): iniziano interpretando in fretta e poi, mentre il programma gira, ottimizzano in codice macchina i percorsi di codice più usati.
Non compili JavaScript in un binario prima di distribuirlo. Consegni il sorgente al browser (o a Node) e il motore pensa al resto:
Incollalo nella console del browser oppure salvalo come greet.js ed esegui node greet.js: il risultato è lo stesso. Nessuna fase di compilazione, nessuna configurazione di build, niente da installare per un codice così semplice.
JavaScript e Java
I nomi si somigliano, i linguaggi no. JavaScript ricevette questo nome nel 1995 per sfruttare la popolarità che Java aveva in quel periodo: una scelta di marketing che da allora confonde chi inizia.
| JavaScript | Java | |
|---|---|---|
| Tipizzazione | Dinamica | Statica |
| Gira su | Browser, Node.js | JVM |
| Paradigma | Multiparadigma, basato sui prototipi | OOP basata sulle classi |
| Compilazione | JIT, nessuna fase di build obbligatoria | Prima si compila in bytecode |
Se qualcuno ti dice "ho imparato Java, quindi conosco JavaScript", non è così. Trattali come linguaggi separati che per caso condividono quattro lettere.
JavaScript e TypeScript
TypeScript è JavaScript con un sistema di tipi aggiunto sopra. Scrivi il codice con le annotazioni di tipo, il compilatore TypeScript le controlla e il risultato è semplice JavaScript che gira ovunque giri JavaScript.
// JavaScript - types are implicit:
function add(a, b) {
return a + b;
}
// TypeScript - types are explicit:
function add(a: number, b: number): number {
return a + b;
}
Ogni file JavaScript valido è anche un file TypeScript valido, quindi TypeScript non è un concorrente: è un sovrainsieme. Oggi la maggior parte delle codebase grandi usa TypeScript, ma imparare prima JavaScript è l'ordine giusto. Non puoi capire il lavoro di TypeScript senza capire a cosa sta aggiungendo i tipi.
Un po' di storia, per capire le stranezze
JavaScript fu scritto in dieci giorni nel 1995 da Brendan Eich a Netscape. Questa origine conta, perché alcuni spigoli del linguaggio (l'uguaglianza non rigorosa, l'inserimento automatico del punto e virgola, typeof null === "object") derivano da decisioni prese sotto un'enorme pressione di tempo e poi congelate per mantenere il web retrocompatibile.
Il linguaggio è standardizzato come ECMAScript, e ogni anno esce una nuova versione (ES2015 è stata quella importante: let, const, arrow function, classi, moduli). Quando qualcuno dice "ES6" o "JavaScript moderno", intende più o meno l'insieme di funzionalità dal 2015 in poi, oggi supportato ovunque.
Il JavaScript moderno è davvero piacevole da scrivere. Le parti più vecchie ci sono ancora, ma puoi evitarle quasi sempre con le abitudini che vedremo lungo tutto questo corso.
Cosa portarsi a casa
- JavaScript gira in ogni browser e, tramite Node.js, anche sui server.
- Si usa per quasi tutto ciò che tocca il web: interfacce, backend, strumenti, perfino app desktop e mobili.
- Non è Java. TypeScript è un sovrainsieme che aggiunge i tipi statici.
- Il linguaggio ha alcune stranezze storiche; quello che scriverai davvero è JavaScript moderno (ES2015+).
Prossimo passo: eseguire JavaScript
Basta contesto: è ora di eseguire un po' di codice. La prossima pagina parla dei tre posti in cui eseguirai JavaScript all'inizio: la console del browser, un file HTML e Node.js dalla riga di comando.
Domande frequenti
Cos'è JavaScript in parole semplici?
JavaScript è un linguaggio di programmazione che gira dentro i browser web e sui server (tramite Node.js). È ciò che rende interattive le pagine web: risponde ai clic, aggiorna la pagina senza ricaricarla, recupera dati dalle API. È l'unico linguaggio che gira nativamente in ogni browser.
A cosa serve JavaScript?
A tutto, dalle piccole interazioni dell'interfaccia (menu a tendina, validazione dei moduli) alle web app complete (Gmail, Figma, Notion), ai server backend (Node.js, Deno), alle app mobili (React Native), alle app desktop (VS Code tramite Electron) e agli strumenti di build. Se qualcosa gira in un browser o comunica con il web, probabilmente c'entra JavaScript.
JavaScript è la stessa cosa di Java?
No: sono linguaggi senza alcun legame, con nomi simili per ragioni storiche di marketing. Java è un linguaggio a tipizzazione statica, basato sulle classi, che gira sulla JVM. JavaScript è a tipizzazione dinamica, gira nei browser e in Node e ha un design molto diverso. L'unica cosa che hanno davvero in comune sono le prime quattro lettere.
Qual è la differenza tra JavaScript e TypeScript?
TypeScript è JavaScript con in più un sistema di tipi. Scrivi il codice con le annotazioni di tipo, un compilatore le controlla e il risultato è semplice JavaScript. Ogni file JavaScript valido è anche TypeScript valido. Non ti serve TypeScript per imparare JavaScript, ma oggi la maggior parte dei progetti grandi lo usa.