Documentazione JavaScript
Guida di riferimento a JavaScript concisa e ricca di esempi. Leggi il concetto, guarda il codice e poi mettilo in pratica in un percorso Coddy.
Inizia un percorso guidato di JavaScriptGetting Started
- Cos'è JavaScriptCos'è davvero JavaScript, dove gira, a cosa serve e in cosa si differenzia da Java e TypeScript: un'introduzione concreta per chi inizia.
- Eseguire JSI modi pratici per eseguire JavaScript nel 2026: la console del browser, un tag script in HTML, Node.js dal terminale e quando scegliere ciascuno.
- Sintassi e punto e virgolaCome funziona la sintassi di JavaScript (istruzioni, blocchi, espressioni) e la verità sul punto e virgola, l'inserimento automatico (ASI) e quando può fregarti.
- Strict modeCosa cambia la strict mode di JavaScript, come attivarla e perché il codice moderno (moduli e classi) la ottiene in automatico.
- CommentiCome funzionano i commenti in JavaScript: `//` per una riga, `/* */` per i blocchi e le abitudini che rendono i commenti davvero utili invece che rumore.
Variables & Types
- let, const, varI tre modi di dichiarare una variabile in JavaScript, e perché il codice moderno usa `const` di default, `let` quando serve e `var` praticamente mai.
- Tipi primitiviI sette tipi primitivi di JavaScript (string, number, bigint, boolean, null, undefined, symbol) e in cosa si differenziano dagli oggetti.
- Stringhe e templateCome funzionano le stringhe in JavaScript: virgolette, backtick, interpolazione, testo su più righe e i metodi che userai davvero.
- Numeri e BigIntCome funziona davvero il tipo Number di JavaScript: precisione in virgola mobile, MAX_SAFE_INTEGER e quando passare a BigInt.
- null vs undefinedQual è davvero la differenza tra null e undefined in JavaScript, come controllare l'uno o l'altro e quale usare nel tuo codice.
- Coercizione dei tipiCome JavaScript converte i valori da un tipo all'altro: le regole implicite che fanno inciampare, le conversioni esplicite da preferire e quando entra in gioco ciascuna.
- Uguaglianza (== vs ===)Come funziona l'uguaglianza in JavaScript: stretta e non stretta, le stranezze di ==, il comportamento di NaN e degli oggetti, e quando usare Object.is.
Control Flow
- OperatoriGli operatori che JavaScript ti offre per fare calcoli, confrontare valori, combinare booleani e assegnare, con le stranezze che nella pratica ti fanno davvero inciampare.
- if / elseCome funziona if/else in JavaScript: condizioni, catene di else if, le trappole dei valori truthy e quando conviene usare l'operatore ternario.
- SwitchCome funziona l'istruzione switch in JavaScript: case, break, default, fallthrough e quando switch è meglio di una catena di if/else.
- Ciclo forCome funziona il classico ciclo `for` in JavaScript: l'intestazione in tre parti, scorrere gli array, break e continue, cicli annidati ed errori comuni.
- Cicli whileCome funzionano i cicli `while` e `do...while` in JavaScript, quando preferirli a `for` e come evitare i cicli infiniti.
- for...of e for...inLe vere differenze tra for...of e for...in in JavaScript: valori contro chiavi, array contro oggetti, e quando usare l'uno o l'altro.
- Truthy e falsyCosa è truthy e cosa è falsy in JavaScript, l'elenco completo dei valori falsy e come funziona la conversione a booleano nel codice reale.
Iteration
- Iteratori e generatoriCome funziona il protocollo degli iteratori in JavaScript, come rendere iterabili i tuoi oggetti e come le funzioni generatore rendono tutto semplice.
- SymbolsCosa sono i symbol in JavaScript, perché esistono e come i well-known symbol come Symbol.iterator permettono ai tuoi oggetti di agganciarsi alle funzionalità del linguaggio.
Functions
- Dichiarazioni di funzioneCome dichiarare una funzione in JavaScript: la parola chiave function, i parametri, i valori di ritorno, l'hoisting e quando scegliere una dichiarazione o un'espressione.
- Arrow functionCome funzionano le arrow function in JavaScript: la sintassi `=>`, il return implicito, come gestiscono `this` e quando conviene usarle al posto di `function`.
- Parametri e valori predefinitiCome funzionano i parametri in JavaScript: valori predefiniti, quando scattano con undefined, ordine di valutazione e la differenza tra parametri e argomenti.
- Rest e spreadCome funziona l'operatore ... in JavaScript: raccogliere argomenti con i parametri rest, espandere array e oggetti con lo spread e quando usare l'uno o l'altro.
- ClosureUna closure è una funzione che ricorda le variabili che la circondano. Ecco come funzionano le closure in JavaScript, con esempi eseguibili e casi d'uso reali.
- thisCome funziona davvero `this` in JavaScript: le quattro regole di binding, perché le arrow function sono diverse e come evitare la classica trappola 'this is undefined'.
- Funzioni di ordine superioreLe funzioni di ordine superiore in JavaScript: passare funzioni come argomenti, restituirle da altre funzioni e gli schemi map/filter/reduce che userai ogni giorno.
Objects & Arrays
- OggettiCome funzionano davvero gli oggetti in JavaScript: crearli, leggere e scrivere proprietà, aggiungere metodi e i pattern che mantengono leggibile il codice.
- ArrayCome funzionano gli array in JavaScript: crearli, indicizzarli, usare length, push/pop, la differenza tra slice e splice, e i cicli più leggibili.
- DestructuringCome funziona il destructuring in JavaScript: estrarre valori da oggetti e array, rinominare variabili, valori predefiniti, pattern annidati e parametri di funzione.
- Spread degli oggettiCome funziona l'operatore spread con gli oggetti in JavaScript: clonare, unire, sovrascrivere proprietà e il problema della copia superficiale che coglie tutti di sorpresa.
- Metodi degli arrayI metodi degli array che sostituiscono quasi tutti i tuoi cicli for: map, filter, reduce, find, some ed every. Scopri quali modificano l'array e quali ne restituiscono uno nuovo.
- Map e SetCome funzionano Map e Set in JavaScript, in cosa differiscono da oggetti e array semplici e quando conviene usarli.
- JSONCome convertire oggetti JavaScript in JSON e viceversa: JSON.stringify, JSON.parse, le funzioni replacer e reviver e i valori che non sopravvivono al viaggio di andata e ritorno.
- Optional ChainingCome l'operatore `?.` ti permette di accedere a oggetti annidati, array e metodi senza che tutto esploda su null o undefined.
- Nullish CoalescingCome l'operatore `??` sceglie un valore predefinito solo quando un valore è `null` o `undefined`, e perché nella pratica batte `||`.
Classes & Prototypes
- ClassiCome funzionano davvero le classi in JavaScript: constructor, metodi, campi di istanza, getter e setter, e il modello mentale dietro la parola chiave `class`.
- EreditarietàCome funziona l'ereditarietà nelle classi JavaScript: extends, super, override dei metodi e quando l'ereditarietà è lo strumento sbagliato.
- Metodi staticCome funzionano i metodi e le proprietà statiche nelle classi JavaScript: quando usarli, come si comporta `this` e il pattern factory che rendono possibile.
- Campi privatiCome il prefisso `#` rende davvero privati i campi e i metodi di una classe in JavaScript: sintassi, regole e perché la convenzione del trattino basso non basta.
- PrototypeCosa sono davvero i prototype in JavaScript, come la catena dei prototype risolve la ricerca delle proprietà e come la sintassi `class` si appoggia sullo stesso meccanismo.
Async JavaScript
- Event LoopIl modello mentale del JavaScript asincrono: la call stack, la coda dei task, la coda dei microtask e come l'event loop tiene tutto insieme.
- CallbackCome funzionano le callback in JavaScript: passare funzioni come argomenti, il pattern error-first e perché le callback annidate hanno spinto la community verso le promise.
- PromiseCome funzionano le Promise in JavaScript: i tre stati, la concatenazione con then e catch, la combinazione con Promise.all e come crearne una con new Promise.
- async/awaitCome funziona davvero async/await in JavaScript: funzioni async, await sulle promise, gestione degli errori con try/catch ed esecuzione in parallelo.
- Fetch APIGuida pratica alla Fetch API in JavaScript: richieste GET e POST, parsing del JSON, gestione corretta degli errori e annullamento delle richieste lente.
- Errori asyncCome scorrono davvero gli errori nel JavaScript asincrono: try/catch con async/await, .catch sulle promise e le trappole che ingoiano i fallimenti in silenzio.
Modules & Tooling
- ES ModulesCome funzionano gli ES Modules in JavaScript: export con nome e default, sintassi di import, import() dinamico e le regole che distinguono i moduli dagli script classici.
- CommonJS vs ESMI due sistemi di moduli di JavaScript, perché esistono entrambi e come scegliere tra require e import nei progetti Node.
- Basi di npmCome funziona davvero npm: installare pacchetti, init, dipendenze di sviluppo, aggiornamenti e il modello mentale dietro node_modules e il lockfile.
- package.jsonCosa c'è dentro package.json: i campi che contano, come funzionano gli script e come gli intervalli semver decidono quali versioni installa npm.
- Runtime NodeCos'è il runtime Node.js, in cosa differisce dal browser e quali API fondamentali (globali, moduli, process, fs) rendono possibile JavaScript lato server.
Errors & Debugging
- try/catchCome funziona try/catch/finally in JavaScript: catturare gli errori, l'oggetto error, rilanciare le eccezioni e quando try/catch è lo strumento sbagliato.
- Tipi di erroreI tipi di errore predefiniti di JavaScript: cosa significa ciascuno, quando lo vedrai e come leggere il messaggio senza tirare a indovinare.
- Console e DevToolsI metodi della console e le funzioni dei DevTools che rendono il debug di JavaScript più veloce che riempire il codice di console.log.
Working with Real Data
- RegexCome funzionano le espressioni regolari in JavaScript: creare i pattern, i metodi principali (test, match, replace), i flag e i gruppi di cattura con esempi reali.
- Date e orariCome funziona davvero l'oggetto Date di JavaScript: creare date, formattarle, fare calcoli, gestire i fusi orari e le stranezze che mettono in difficoltà.
- URL e query stringCome analizzare, costruire e modificare gli URL in JavaScript con le API `URL` e `URLSearchParams`, senza regex e senza bug nei casi limite.