Aspetto
JavaScript.info: tutti i capitoli
175 articoli in italiano, organizzati secondo il tutorial di Ilya Kantor. Gli esercizi con le relative soluzioni si trovano in fondo alle lezioni.
Segui prima il percorso di base; gli approfondimenti rimangono disponibili per dopo. Fonti e licenza.
Parte 1 · Il linguaggio
Introduzione
Fondamenti
- Hello, world!
- Struttura del codice
- Le tecniche moderne, "use strict"
- Variabili
- Tipi di dato
- Interazioni: alert, prompt, confirm
- Conversione di tipi
- Operatori di base
- Confronti
- Operatori condizionali: if, '?'
- Operatori logici
- Nullish coalescing operator '??'
- Cicli: while e for
- L'istruzione "switch"
- Funzioni
- Function expression
- Arrow functions, le basi
- Specialità di JavaScript
Qualità del codice
- Debugging in the browser
- Stile di programmazione
- Commenti
- Codice ninja
- Test automatici con Mocha
- Polyfills e transpilers
Oggetti: le basi
- Oggetti
- Oggetti: riferimento e copia
- Garbage collection ("Spazzatura")
- Metodi degli oggetti,"this"
- Costruttore, operatore "new"
- Concatenamento opzionale '?.'
- Il tipo Symbol
- Conversione da oggetto a primitivi
Tipi di dato e strutture
- Metodi dei tipi primitivi
- Numeri
- Stringhe
- Array
- Metodi per gli array
- Iteratori
- Map e Set
- WeakMap e WeakSet
- Object.keys, values, entries
- Assegnamento di destrutturazione
- Date e time
- Metodi JSON, toJSON
Funzioni avanzate
- Ricorsione e pila
- Parametri resto e operatore di espansione
- Variable scope, closure
- Il vecchio "var"
- Oggetto globale
- Oggetto funzione, NFE
- La sintassi "new Function"
- Pianificazione: setTimeout e setInterval
- Decorators e forwarding, call/apply
- Function binding
- Arrow functions rivisitate
Proprietà degli oggetti
Prototipi ed ereditarietà
Classi
- Sintassi base delle classi
- Ereditarietà delle classi
- Proprietà e metodi statici
- Proprietà e metodi privati e protetti
- Estendere le classi built-in
- Verifica delle classi: "instanceof"
- Mixins
Errori
Promise e async/await
- Introduzione: callbacks
- Promise
- Concatenamento di promise (promise chaining)
- Gestione degli errori con le promise
- Promise API
- Promisification
- Microtasks
- Async/await
Generatori e iterazione avanzata
Moduli
Approfondimenti sul linguaggio
- Proxy e Reflect
- Eval: eseguire una stringa di codice
- Currying
- Il tipo Reference
- BigInt
- Unicode e rappresentazione delle stringhe
- WeakRef e FinalizationRegistry
Parte 2 · Browser e DOM
Documento e DOM
- Il Browser come ambiente, specifiche
- Alberatura DOM
- Percorrere il DOM
- Ricerca: getElement*, querySelector*
- Le proprietà del nodo: tipo, tag e contenuto
- Attributi e proprietà
- Modificare il documento
- Stili e classi
- Dimensioni dell'elemento e barra di scorrimento
- Dimensioni e scorrimento della finestra del browser
- Coordinate
Eventi
- Introduzione agli eventi del browser
- Bubbling e capturing
- Event delegation
- Azioni predefinite del browser
- Dispatching di eventi personalizzati
Eventi delle interfacce
- Eventi del mouse
- Movimenti del mouse: mouseover/out, mouseenter/leave
- Drag'n'Drop con gli eventi del mouse
- Eventi del puntatore
- Tastiera: keydown e keyup
- Scrolling
Form e controlli
- Proprietà dei form e metodi
- Focusing: focus/blur
- Eventi: change, input, cut, copy, paste
- Form: eventi e metodi di submit
Caricamento delle risorse
- Page: DOMContentLoaded, load, beforeunload, unload
- Scripts: async, defer
- Caricamento delle risorse: onload e onerror
Approfondimenti sul browser
Parte 3 · Argomenti aggiuntivi
Finestre e frame
Dati binari e file
Richieste di rete
- Fetch
- FormData
- Fetch: Download progress
- Fetch: Abort
- Fetch: Cross-Origin Requests
- API Fetch
- URL objects
- XMLHttpRequest
- Upload del file ripristinabile
- Long polling
- WebSocket
- Server Sent Events
Memorizzazione nel browser
Animazione
Web Components
- In alto, nell'orbita terrestre
- Elementi personalizzati
- Shadow DOM
- Elemento Template
- Shadow DOM slots, composition
- Shadow DOM styling
- Shadow DOM ed eventi
Espressioni regolari
- Pattern e flag
- Classi di caratteri
- Unicode: flag "u"
- Inizio stringa ^ e fine $
- Modo multilinea, flag "m"
- Confine di parola: \b
- Escaping, caratteri speciali
- Insiemi e intervalli [...]
- Quantificatori +, *, ? and
- Modalità greedy e lazy dei quantificatori
- I gruppi di acquisizione (capturing group)
- Riferimenti all'indietro (backreference) nei pattern: \N e \kname
- Alternanza (OR) |
- Lookahead e lookbehind
- Backtracking catastrofico
- Sticky flag "y", ricerca della posizione
- Metodi di RegExp e String