Sviluppo in JavaScript: corso 39.500 rubli. da IBS Training Center, formazione 40 ore, Data 26 novembre 2023.
Miscellanea / / November 28, 2023
Argomenti trattati:
1. Linguaggio JavaScript:
Versioni e implementazioni di JavaScript;
Aree di applicazione di JavaScript (browser, server, sviluppo mobile);
Tipi di dati: Stringa, Numero, Booleano (il concetto di verità e falsità);
Operatori, precedenza degli operatori;
Dichiarazione delle variabili: var, const, let;
Cicli: while, for, for… in, for…of;
Lavorare con numeri e stringhe;
Valori nulli e indefiniti: differenze e finalità applicative;
Lavorare con la console;
Eccezioni in JavaScript.
2. JSON, oggetti e array:
Formato JSON, esempi;
JSON.parse e stringify;
Oggetti, lavorando con la classe Object;
Creazione di oggetti (utilizzando il letterale {}, l'operatore new, il metodo create);
Eredità prototipo, riferimento __proto__;
Getter e setter;
L'operatore in e hasOwnProperty, il concetto di proprietà enumerabili;
metodo toString(), chiamando e sovrascrivendo il metodo;
metodo valueOf(), chiamando e sovrascrivendo il metodo;
Creazione di array: valori letterali e new Array();
Modifica automatica della lunghezza dell'array;
Ottenere e impostare la lunghezza dell'array, troncando l'array;
Utilizzando i metodi join() e concat();
Utilizzando il metodo sort, impostando l'ordinamento dell'array;
Utilizzando i metodi di fetta e giunzione;
Utilizzo dei metodi push, pop, shift, unshift: creazione di uno stack o di una coda.
3.Lavorare con date e stringhe:
Utilizzando il nuovo costruttore Date();
Comprendere la rappresentazione informatica della data come ora con Epoch;
Utilizzando getTime() e setTime();
Analisi della rappresentazione in stringa delle date;
Opzioni per creare stringhe in JS: utilizzo di virgolette singole e doppie;
Interpolazione di stringhe (stringa tra apostrofi);
Escape di caratteri speciali in una stringa;
Concatenazione di stringhe, conversione in maiuscolo e minuscolo;
Trovare una sottostringa utilizzando indexOf() e lastIndexOf();
Selezione di una sottostringa utilizzando substring() e substr()
Utilizzando i metodi include, EndsWith, StartsWith.
4. Utilizzo di JavaScript nel browser: Modello DOM:
Gestione della finestra del browser, del documento, degli eventi e dello stile (stili CSS);
L'oggetto finestra e i suoi usi;
Collegamento del codice JavaScript a una pagina HTML;
L'ordine di esecuzione degli script sulla pagina;
Caching degli script, server CDN, ricarica forzata JavaScript;
Lavorare con i collegamenti, connettere JavaScript ai collegamenti;
L'evento onload e il suo utilizzo;
Attacchi XSS al sito;
Lavorare con il DOM: usare window, document, childNodes;
Manipolare un documento utilizzando il DOM: creare, eliminare, spostare elementi;
Utilizzando getElementById(), getElementsByTagName(), getElementsByClassName() per trovare elementi sulla pagina;
Lavorare con metodi e proprietà di HTMLDocument e HTMLElement.
5. Lavorare con gli eventi nel browser:
Il concetto di programmazione di eventi;
Gestori e ascoltatori di eventi;
Connessione dei gestori utilizzando addEventListener();
Proprietà e metodi della classe Event;
Propagazione degli eventi verso l'alto (bubbling) e verso il basso (catturando);
Arrestare la diffusione;
Eventi della finestra;
Eventi del mouse e della tastiera, proprietà degli eventi speciali;
Eventi del modulo;
6. Lavorare con i CSS e gestire gli stili:
Standard CSS, proprietà CSS di base;
Stili generali e stili dei singoli elementi;
Stili a cascata;
Selettori CSS;
Modifica CSS con JavaScript;
Imbottitura: margine, imbottitura, bordo;
Controllare la visibilità degli elementi: visibilità e visualizzazione;
Posizionamento degli elementi: assoluto, fisso, relativo, impostazione in alto e a sinistra;
Unità di misura px, pt e altre;
Overflow dell'elemento e controllo tramite la proprietà overflow;
Gestione dei livelli del documento: proprietà zIndex;
Animazione, movimento degli elementi;
Lavorare con le classi, impostando className;
Lavorare con trasparenza e transizioni;
metodo querySelectorAll().
7. Lavorare con moduli in JavaScript, gestore pacchetti NPM, costruttore Webpack:
Motivi per l'utilizzo dei moduli;
Esporta dal modulo;
Importa dal modulo;
Riesportare;
Lavorare con NPM, file package.json;
cartella node_modules, download di pacchetti tramite NPM;
Installazione globale e locale di pacchetti;
Utilizzo del webpack per creare un progetto;
Caricatori CSS e TypeScript;
Configurazione webpack.config.js;
Creazione di bundle, compressione;
plugin del pacchetto web;
Utilizzando vecchi sistemi di modularità – CommonJS e AMD;
Utilizzando CommonsChunkPlugin, più punti di ingresso;
Moduli HMR sostituibili a caldo.
8. Classi ed ereditarietà in JavaScript:
Eredità del prototipo, riferimento __proto__;
Prototipo dell'oggetto;
Utilizzando istanza di;
Classe di parole chiave, creazione di classi;
Parola chiave eccellente;
Utilizzando il metodo Object.assign();
Utilizzando il metodo Object.defineProperty();
Getter e setter;
Operatore di diffusione per lavorare con oggetti e array;
Destrutturare un array e un oggetto.
9. Programmazione funzionale in JavaScript:
Funzioni come variabili;
Argomenti di matrice;
Classe di funzione, metodi call() e apply();
Il metodo bind(), che imposta questo e alcuni parametri utilizzando bind;
Chiusure in JavaScript;
Incapsulare i valori utilizzando le chiusure;
Creazione di una funzione tramite il costruttore Function: costruzione di una stringa;
Funzioni delle frecce, esempi di applicazione;
Manipolazione di array funzionali: trova, trovaIndice, filtra;
Esempi di utilizzo di map/filter/reduce per elaborare i dati in un array.
10. Immutabilità, test, modello MVC:
Il concetto di immutabilità, i suoi vantaggi;
Metodi mutabili e immutabili per modificare oggetti e array;
Concetto e vantaggi del DOM Virtuale;
Testare funzioni immutabili, usando Jest;
Memoizzazione, i suoi vantaggi;
Errori e raccomandazioni di base quando si utilizza la programmazione funzionale;
Modello MVC, creazione dell'interfaccia utente;
Panoramica delle principali librerie per lo sviluppo di interfacce: Angular, React, Vue.
11. Asincronia in JavaScript. Promesse:
Il concetto e la necessità di asincronia;
Lavorare con setTimeout, setInterval, clearTimeout;
Funzioni di callback (callback);
Perderlo quando si lavora con una funzione di callback. Soluzioni (usando bind, funzioni freccia, ecc.);
Il concetto di promesse, restituendo una Promessa da una funzione asincrona;
Metodo Promise.all(), la sua applicazione;
sintassi asincrona/attesa, casi d'uso, limitazioni;
Gestione delle situazioni di emergenza: rifiuto della promessa, gestione delle eccezioni per chiamate asincrone.
12. Lavorare con il server. Protocollo HTTP. Servizi REST:
protocollo HTTP;
Intestazioni e metodi HTTP (GET, POST, PUT, DELETE, altri), trasferimento dati;
Server HTTP (panoramica);
Codici di risposta del server HTTP;
Utilizzo di moduli per inviare dati;
Trasferimento dei dati al server utilizzando AJAX;
Architettura REST: vantaggi e caratteristiche;
Implementazione di CRUD (operazioni di creazione/lettura/aggiornamento/eliminazione) quando si lavora con REST;
Utilizzando la funzione fetch() per ricevere e inviare dati;
Documentare i servizi REST utilizzando Swagger;
Concetto di HATEOAS, applicazione;
13. Libreria AXIOS. Protocollo WebSocket:
Confronto tra la libreria Axios di alto livello e l'uso di fetch();
Richieste GET e POST in Axios;
Utilizzo di async/await con Axios;
Gestione degli errori durante l'utilizzo di Axios;
Annullare una richiesta utilizzando Axios;
Protocollo WebSocket;
Esempi di utilizzo di WebSocket, confronto con HTTP;
Animazione HTML;
Nota
I materiali del corso sono presentati in inglese.