JavaScript è il principale linguaggio di programmazione utilizzato per sviluppare siti web con pagine interattive. Il testo di Carey e Vodnik è un manuale completo, caratterizzato da un taglio operativo: grazie a dettagliati casi realistici, guida passo passo alla progettazione e alla creazione di pagine web dinamiche. Le diverse tecniche presentate e le attività di programmazione proposte permettono di acquisire e consolidare le competenze in maniera graduale, dalle basi di JavaScript fino alla progettazione e alla realizzazione di applicazioni web di qualità professionale. Grande attenzione è dedicata alla programmazione orientata agli oggetti e, oltre alle caratteristiche e funzionalità di JavaScript, sono trattate tecnologie avanzate, come AJAX e Google Maps API. Numerosi file, disponibili online, sono stati predisposti per realizzare le attività guidate e accompagnare nel percorso di apprendimento del linguaggio.
Maggiori Informazioni
Autore
Carey Patrick;Vodnik Sasha
Editore
Maggioli Editore
Anno
2023
Tipologia
Libro
Collana
Apogeo education
Lingua
Italiano
Indice
Capitolo 1 Introduzione a JavaScript 1.1 Una panoramica del linguaggio JavaScript I linguaggi di scripting JavaScript ed ECMAScript DOM e BOM L’architettura client/server JavaScript e lo scripting sul client Scripting sul server Devo usare uno script sul client o sul server? 1.2 Scrivere un programma in JavaScript IDE o editor di codice L’elemento script Enunciati JavaScript Gli oggetti in JavaScript L’uso del metodo write() Maiuscole e minuscole in JavaScript Commenti in un programma JavaScript 1.3 Scrivere codice JavaScript elementare Usare variabili Assegnare nomi alle variabili Dichiarare e inizializzare variabili 1.4 Costruire espressioni con variabili Costruire un’espressione Modificare variabili 1.5 Gli eventi Lavorare con elementi ed eventi Fare riferimento a elementi della pagina web 1.6 Dare una struttura al codice JavaScript Inserire un elemento script in ciascuna sezione di codice Posizionare un elemento script 1.7 Creare un file sorgente JavaScript Riferimento a un file esterno Le parole chiave async e defer Connessione a un file JavaScript Lavorare con librerie 1.8 Convalida di pagine web Riepilogo del capitolo Domande di ripasso Capitolo 2 Funzioni, operatori e tipi di dati 2.1 Lavorare con le funzioni Definire una funzione Scrivere una funzione Invocare una funzione Ottenere un valore da una funzione 2.2 Gestire eventi usando funzioni Usare gestori di eventi Eventi come proprietà di oggetti Ricevitori di eventi Eventi e funzioni anonime Associare una funzione a un evento 2.3 Usare le funzioni predefinite di JavaScript 2.4 L’ambito di visibilità delle variabili Ambito di visibilità delle dichiarazioni let e var Visibilità locale e globale 2.5 Lavorare con i tipi di dato Valori numerici Valori booleani Lavorare con stringhe Caratteri e sequenze di escape 2.6 Usare operatori per costruire espressioni Operatori aritmetici Operatori di assegnazione Operatori di confronto Operatori condizionali Capire meglio i valori falsi e veri Operatori logici Operatori speciali 2.7 La precedenza tra operatori 2.8 Usare espressioni nei controlli dei moduli web Lavorare con i valori degli elementi di acquisizione di dati Lavorare con le caselle di spunta Usare l’evento change con i controlli dei moduli web 2.9 Individuare errori con la console del browser Accedere alla console del browser Localizzare un errore in un programma Riepilogo del capitolo Domande di ripasso Capitolo 3 Array e controllo di flusso 3.1 Memorizzare dati in array Dichiarare e inizializzare array Elementi e indici Creare un array Array multidimensionali 3.2 Le raccolte di HTML Riferimento a un elemento di una raccolta Cercare nel DOM 3.3 Array e raccolte HTML nella console 3.4 Programmare con i cicli Il ciclo while Il ciclo do while Il ciclo for Scrivere un ciclo for 3.5 Metodi che elaborano array mediante cicli 3.6 Codice che prende decisioni L’enunciato if L’enunciato if else L’enunciato else if Enunciati if e else if annidati Enunciati condizionali e verifica del browser L’enunciato switch 3.7 Gestire cicli e decisioni L’enunciato break L’enunciato continue Etichette per enunciati Riepilogo del capitolo Domande di ripasso Capitolo 4 Debugging e gestione degli errori 4.1 Introduzione al debugging Errori di caricamento Errori di esecuzione Errori logici 4.2 Debugging usando la console del browser 4.3 Eseguire JavaScript in strict mode 4.4 Risalire all’origine degli errori Usare il metodo window.alert() per tracciare gli errori Tracciamento degli errori mediante il diario di console Usare commenti per localizzare gli errori 4.5 Tracciare il flusso d’esecuzione con strumenti di debugging Accedere agli strumenti di debugging del browser Inserire e togliere breakpoint Eseguire un programma passo dopo passo Tenere traccia di espressioni e variabili Ispezionare la pila delle invocazioni (call stack) 4.6 Gestire errori Gestire eccezioni con l’enunciato try catch Lanciare un’eccezione L’enunciato try catch finally Il parametro errore nell’enunciato catch Usare la gestione delle eccezioni in un programma 4.7 Personalizzare la gestione degli errori Catturare errori con l’evento error Funzioni per la gestione di errori Riepilogo del capitolo Domande di ripasso Capitolo 5 Creare un’applicazione web usando il DOM 5.1 Progettare un’applicazione web 5.2 Introduzione ai nodi I nodi e il Document Object Model (DOM) Selezionare nodi usando il metodo querySelectorAll() Creare e collegare nodi Elementi, nodi e attributi HTML Nodi e stili integrati Creare un frammento di documento in un’applicazione Visualizzare gli elementi con il debugger del browser 5.3 Ristrutturare un albero di nodi Spostare nodi con il metodo appendChild() Spostare nodi con il metodo insertBefore() Clonare un nodo 5.4 Eseguire comandi temporizzati Ripetere comandi a intervalli specifici Fermare un comando temporizzato Usare comandi ritardati nel tempo 5.5 Lavorare con finestre popup Finestre di dialogo di sistema Lavorare con le finestre del browser Scrivere contenuti in una finestra del browser Limitazioni per le finestre del browser 5.6 Creare overlay L’oggetto this Eliminare un nodo 5.7 Esplorare il Browser Object Model (BOM) L’oggetto history L’oggetto location L’oggetto navigator L’oggetto screen Riepilogo del capitolo Domande di ripasso Capitolo 6 Moduli web 6.1 Moduli e loro elementi La raccolta Forms Lavorare con elementi di moduli Proprietà e metodi degli elementi input Navigare tra gli elementi di controllo di un modulo 6.2 Lavorare con elenchi selezionabili 6.3 Lavorare con pulsanti di selezione Individuare l’opzione selezionata Accedere all’etichetta dell’opzione 6.4 Impaginare i dati in un modulo Il metodo toFixed() Impaginare valori usando una stringa di localizzazione 6.5 Rispondere a eventi in un modulo 6.6 Lavorare con campi nascosti 6.7 L’invio di un modulo Uso dell’evento submit Ripristino di un modulo 6.8 Convalida dei dati di un modulo con JavaScript Constraint Validation API L’oggetto ValidityState Creare un messaggio di convalida personalizzato Reagire a dati non validi Convalidare dati usando il pattern matching Convalida di un elenco di selezione 6.9 Confronto tra un campo e un’espressione canonica 6.10 Progettare una convalida personalizzata 6.11 Gestire la convalida dei moduli Riepilogo del capitolo Domande di ripasso Capitolo 7 Manipolare dati in stringhe, array e altri oggetti 7.1 Estrarre contenuti da un file di testo L’oggetto file La API File Reader 7.2 Elaborare stringhe di testo Cercare sottostringhe all’interno di una stringa Modificare stringhe di testo Estrarre caratteri e sottostringhe Concatenare stringhe Confrontare stringhe 7.3 Introduzione alle espressioni canoniche (o regolari) Trovare corrispondenza con una sottostringa Impostare opzioni nelle espressioni canoniche Definire tipi e classi di caratteri Specificare ripetizioni di caratteri Usare sequenze di escape Specificare schemi alternativi e raggruppamenti 7.4 Programmare con espressioni canoniche Metodi per espressioni canoniche Sostituire testo mediante espressioni canoniche Suddividere una stringa di testo in un array Fare riferimento alle sottostringhe trovate 7.5 Panoramica sui metodi per array Invertire e ordinare un array Ordinare usando una funzione di confronto Eliminare e inserire elementi in array Usare array come stack di dati 7.6 L’oggetto Math L’oggetto Math Proprietà dell’oggetto Math Applicare un metodo di Math a un array Numeri casuali e ordinamento casuale 7.7 L’oggetto Date Estrarre informazioni da date e orari Impostare data e ora 7.8 Schemi letterali Schemi letterali con segnaposto Etichettare uno schema letterale Riepilogo del capitolo Domande di ripasso Capitolo 8 Definire oggetti, proprietà e metodi 8.1 Comprendere la programmazione orientata agli oggetti Riutilizzo di oggetti software Comprendere l’incapsulamento 8.2 Creare un oggetto letterale Il punto come operatore e le parentesi quadre Creare un metodo in un oggetto personalizzato Creare un oggetto con l’operatore new 8.3 Lavorare con classi di oggetti Le classi di oggetti Costruttori di oggetti e letterali Funzioni costruttrici Combinare classi di oggetti 8.4 Lavorare con prototipi di oggetti L’oggetto prototipo Come estendere le funzionalità di oggetti predefiniti di JavaScript 8.5 Closure Ambito di visibilità lessicale Closure e ambiente lessicale Closure e cicli for 8.6 Metodi pubblici, privati e privilegiati 8.7 Combinare oggetti e catene di prototipi Creare una catena di prototipi L’oggetto di base I metodi apply() e call() 8.8 Archiviazione dei dati e array associativi I cicli for in e for of Memorizzare dati con JSON Riepilogo del capitolo Domande di ripasso Capitolo 9 Gestire informazioni di stato e sicurezza 9.1 Comprendere le sessioni e le informazioni di stato 9.2 Condividere dati tra moduli Recuperare la stringa query usando l’oggetto location Sostituzione dei caratteri codificati per URI 9.3 Introduzione all’archiviazione web (web storage) La Web Storage API Oggetti per archiviazione locale o di sessione 9.4 Archiviare dati con Web Storage API Visualizzare nel browser gli elementi dell’archivio web Recuperare elementi con il metodo getItem() Eliminare elementi dall’archiviazione web Gli eventi di archiviazione L’archiviazione web e la norma della “stessa fonte” 9.5 Introduzione ai cookie Confronto tra cookie e archiviazione web La struttura di un cookie 9.6 Scrivere dati in un cookie La scadenza di un cookie Il percorso di un cookie Il dominio di un cookie La sicurezza dei cookie Una funzione per scrivere il valore di un cookie 9.7 Leggere un cookie 9.8 Eliminare un cookie 9.9 Considerazioni sulla sicurezza Codice sicuro in JavaScript Problemi di sicurezza in JavaScript Utilizzo di script di terze parti Riepilogo del capitolo Domande di ripasso Capitolo 10 Programmare con eventi e API di terze parti 10.1 Lavorare con oggetti di tipo evento Oggetti di tipo Event Cattura e risalita di eventi 10.2 Eventi del mouse e di altri dispositivi di puntamento Eventi di tocco Punti di contatto multipli Eventi di puntamento 10.3 Azioni di trascinamento (drag and drop) Individuare le coordinate di un evento Trascinamento di un elemento Strumenti del browser per emulare un touchscreen 10.4 Drag and Drop API La Drag and Drop API di HTML Trasferire dati con Drag and Drop 10.5 Eventi della tastiera 10.6 Creazione di una mappa interattiva Introduzione alla Google Maps API L’oggetto map Aggiungere spilli segnaposto a una mappa 10.7 Posizioni e geolocalizzazione 10.8 Mappa con indicazioni di percorso L’oggetto route Visualizzare il percorso di guida 10.9 Introduzione alla Device Orientation API 10.10 Predisporre un’applicazione per un utilizzo mobile Strumenti di collaudo Minimizzare la dimensione dei file da scaricare Eliminare informazioni inutili dai file (minifying) Riepilogo del capitolo Domande di ripasso Capitolo 11 Gestire richieste di dati con AJAX e Fetch 11.1 Introduzione alle richieste inviate a un server 11.2 Panoramica dei messaggi HTTP I messaggi HTTP 11.3 Presentazione di AJAX L’oggetto XMLHttpRequest Gestione della risposta 11.4 Stato di richiesta e risposta 11.5 AJAX e il callback hell 11.6 Presentazione della “sintassi con la freccia” Funzioni definite con freccia e valori dei parametri 11.7 Gli oggetti-promessa Definire un oggetto-promessa Concatenazione di promesse Promesse multiple 11.8 La Fetch API Gestione delle risposte di fetch Gestione degli errori con fetch Uso di fetch per restituire i risultati di una ricerca 11.9 Usare XML Analisi sintattica di contenuti XML Elaborazione di un albero di nodi XML 11.10 Una casella di ricerca con auto-completamento Elaborare dati JSON Costruire il riquadro con i suggerimenti 11.11 Lavorare con API di terze parti Richiesta di una GIF casuale Terminali di terze parti 11.12 Problemi di sicurezza con le API Lavorare con CORS Lavorare con JSONP Usare XHR con un proxy Riepilogo del capitolo Domande di ripasso Capitolo 12 Introduzione a jQuery 12.1 Introduzione a jQuery Versioni di jQuery Caricamento di jQuery È ancora interessante? 12.2 I selettori di jQuery Selezionare elementi nel DOM Navigare nel DOM con jQuery Attributi e proprietà CSS Modificare la struttura del DOM 12.3 Gestione di eventi con jQuery 12.4 Effetti e animazioni Concatenazione di effetti Effetti personalizzati con animate() Controllo della coda delle animazioni 12.5 I plugin di jQuery Riepilogo del capitolo Domande di ripasso
Indice analitico Appendice A Installare e configurare un server di prove Appendice B HTML e CSS Appendice C Soluzioni delle Verifiche rapide Appendice D Progetti di programmazione