Corso Superiore di JavaScript
Stilizzazione
Stilizzazione tramite l'attributo style
Unità di misura nell'attributo style
Errori con le unità di misura
Spacchettamento dei valori delle proprietà CSS
Reset degli stili tramite style
Impostazione massiva degli stili
Problemi di lettura degli stili
Lettura delle proprietà dai file CSS
Conversione dei valori letti
Stilizzazione con le classi
Una classe per la stilizzazione
Scomodità delle classi
Alternanza di stili tramite data-
Metriche degli elementi
Espansione degli elementi in CSS
Elemento di test
Dimensione client dell'elemento
Dimensione completa dell'elemento
Dimensioni dell'elemento con scorrimento
Scorrimento degli elementi
Modifica dello scorrimento dell'elemento
Scorrimento dell'elemento fino alla fine
Dispiegamento dell'elemento
Larghezza della barra di scorrimento
Metriche della Finestra
Dimensioni della finestra
Dimensioni della finestra con scorrimento
Ottenere lo scorrimento della finestra
Ottenere e modificare lo scorrimento della finestra
Metodo per scorrere la finestra in una posizione
Metodo per scorrere la finestra di un valore
Metodo per scorrere la finestra fino a un elemento
Evento di scorrimento
Collezioni Map
Collezioni Set
Introduzione
Riempimento iniziale
Funzionalità utili
Iterazione con ciclo
Conversione
Rimozione duplicati da un array
Ottenere senza duplicati
Pseudo-array
Introduzione
Somiglianza con gli array
Differenze
Verifica di un array
Conversione in array
Tipi di pseudo-array
Differenza tra i tipi
Simboli
Introduzione al tipo Symbol
Descrizioni del simbolo
Simboli come chiavi degli oggetti
Iterazione di un oggetto con simboli
Funzione in un oggetto
Operazioni con oggetti nella funzione
Simboli globali
Ottenere il nome del simbolo
Simboli ben noti
Iteratori
Oggetti iterabili
Funzione iteratore
Invocationi iteratore
Generatori
Cicli nei generatori
Lavoro una tantum degli iteratori
Iteratore oggetto
Creazione oggetto iterabile
Generatore tramite proprietà calcolata
Iteratore integrato values
Iteratore integrato keys
Iteratore integrato entries
Tre iteratori integrati
Operatore spread e iteratori
Iteratori integrati stringa
Array cifre numero
Numerazione elementi DOM
Recupero dati elementi DOM
Formato JSON
Archiviazione
Introduzione
Archiviazione nel debugger
Dati
Salvataggio una tantum
Sovrascrittura dei dati
Rimozione dei dati
Pulizia dell'archivio
Numero di record
Ottenere la chiave per numero
Iterazione dell'archivio per indice
Array di chiavi e valori dell'archivio
Memorizzazione delle strutture
Modifica delle strutture memorizzate
Pratica
Espressioni Regolari
Introduzione
Operatori di Ripetizione
Parentesi di Raggruppamento
Escape dei Caratteri Speciali
Parentesi Graffe
Limitazione della Ingordigia
Gruppi di Caratteri
Set di Caratteri
Inversione dei Set di Caratteri
Particolarità del Cirillico
Caratteri Speciali all'interno dei Set
Gruppi di Caratteri all'interno dei Set
Caratteri Speciali-Eccezione all'interno dei Set
Simbolo del Cappello all'interno dei Set
Particolarità del Trattino all'interno dei Set
Ignorare il Maiuscolo/Minuscolo
Inizio e Fine della Riga
Confine delle Parole
Multiriga
Comando 'o'
Variabile con Espressione Regolare
Metodo test
Metodo search
Metodo split
Metodo match
Gruppi di Cattura nel metodo match
Match Globale
MatchAll Globale
Metodo exec
Proprietà lastIndex
Gruppi di Cattura nel metodo replace
Callback nel metodo replace
Gruppi di Cattura Predefiniti nel metodo replace
Gruppi di Cattura nell'Espressione Regolare stessa
Gruppi di Cattura Nominati
Gruppi di Cattura Nominati all'interno dell'Espressione
Parentesi Non Catturanti
Lookahead e Lookbehind Positivo e Negativo
Stringa con Espressione Regolare
Flag per le Stringhe
Backslash nelle Stringhe
Situazioni Eccezionali
Introduzione
Tipi di situazioni emergenti
Intercettazione delle eccezioni
Sviluppo con try-catch
Intercettazione delle eccezioni nel codice annidato
Oggetto con eccezione
Tipi fondamentali di eccezioni
Applicazione dei tipi di eccezione
Lancio delle eccezioni
Lancio di vari tipi di eccezioni
Lancio dei propri tipi di eccezioni
Esempio di eccezione con attributi data
Esempio di eccezione con JSON
Rinvio delle eccezioni
Asincronia
Codice Sincrono e Asincrono
Asincronia del Modello a Eventi
Asincronia del Caricamento delle Immagini
Situazioni Eccezionali nel Codice Asincrono
Callback Asincroni
Introduzione
Passaggio asincrono del risultato al callback
Passaggio di parametri al callback asincrono
Gestione delle eccezioni nei callback asincroni
Caricamento delle immagini
Il problema del callback hell
Caricamento asincrono delle immagini in un ciclo
Promesse
Introduzione alle Promise
Gestione delle eccezioni
Oggetto errore
Gestione separata delle eccezioni
Stati di una Promise
Concatenamento di Promise
Promise all'interno di una catena
Eccezioni nelle catene di Promise
Lavorare con array di Promise
Creazione di Promise risolte
Promisificazione del codice asincrono
Il problema del promise hell
Promise in stile sincrono
Eccezioni in stile sincrono
Librerie
Strumenti
Versionamento semantico
Terminale
NodeJS
Introduzione a npm
Installazione tramite npm
Forma breve di installazione
Dipendenze nel file package.json
Dipendenze Dev
Formati delle versioni delle dipendenze
Impostazioni del file package.json
Creazione del file package.json
Trasferimento del progetto npm
File package-lock.json
Aggiornamento dei pacchetti
Rimozione dei pacchetti
Installazione globale tramite npm
Rimozione globale dei pacchetti
Strumento npx
Esecuzione di script tramite npm
Gestore Yarn
Moduli ES
Introduzione ai moduli
Attivazione dei moduli ES
Installazione di Webpack
Principi di funzionamento di Webpack
Configurazione di Webpack
Configurazione dell'avvio della build di Webpack
Build di test con Webpack
Collegamento del bundle al markup
Creazione di un modulo ES
Collegamento di un modulo ES
Rinomina durante l'importazione
Importazione di tutto il contenuto del modulo
Esportazione predefinita
Combinazione di esportazioni
Importazione di tutto il contenuto con combinazione di esportazioni
Esportazione di valori
Valori come costanti
Importazione di moduli npm
Importazione dinamica
Importazione multipla dinamica
Conversione dei moduli CommonJS
Protocollo HTTP
Server di Test
Introduzione
Utilizzo
Esecuzione del Codice
Generazione HTML
Intestazioni di Risposta
Configurazione della Porta
Avvio Multiplo
Forme
Invio di moduli
Metodi di invio dei moduli
Invio di moduli con il metodo GET
Invio di moduli con il metodo POST
Richieste GET
Applicazione delle richieste GET
Pulsanti del modulo
Invio di moduli tramite JavaScript
Impedire l'invio del modulo
Introduzione a FormData
Metodi di FormData
Iteratori di FormData
AJAX
Introduzione ad AJAX
Fondamenti di fetch
Codice di risposta HTTP
Successo della richiesta
Situazioni eccezionali
Intercettazione completa degli errori
Intestazioni della risposta HTTP
Ottenere JSON
Intestazioni della richiesta HTTP
Richieste GET
Richieste POST
Dati tramite URLSearchParams
Dati tramite FormData
Invio dell'intero modulo
Invio di JSON
Politica CORS
Trasmissione dei cookie
Stile sincrono
Lavorare con Canvas
Iniziare a lavorare
Disegnare linee
Disegnare rettangoli
Disegnare cerchi
Cambiare il colore della linea
Cambiare lo spessore delle linee
Cicli
Ottimizzazione del Codice
Fattori di Velocità di Caricamento del Sito
Risorse Disponibili
Ottimizzazione delle Operazioni Ripetute
Ottimizzazione della Ripetizione di Operazioni Pesanti
Ottimizzazione delle Operazioni Cicliche
Ottimizzazione dei Passaggi Superflui del Ciclo
Ottimizzazione tramite Funzioni Integrate
Scelta dell'Algoritmo Ottimale
Ottimizzazione dell'Uso delle Espressioni Regolari
Ottimizzazione dell'Interazione con il DOM
Ottimizzazione del Consumo di Memoria
Ottimizzazione della Conversione in Array
Ottimizzazione dei Gestori di Eventi
Ottimizzazione della Velocità a Discapito della Memoria
Dati
Immutabilità
Copia di array
Copia di oggetto
Aggiunta di elementi in un array
Rimozione di elementi da un array
Modifica di elementi di array
Array di oggetti
Generazione di id casuale
Aggiunta di elemento con id
Rimozione di elemento per id
Modifica di elemento per id
Modifica di una proprietà per id
Recupero di elemento per id