# JavaScript/Appendice

JavaScript
Copertina Tutti i moduli · Sviluppo
* IntroduzioneJavaScript/Introduzione
* Il nostro primo programmaJavaScript/Il nostro primo programma
* Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
* Operatori e castingJavaScript/Operatori e casting
* Le strutture di controllo
** SelezioneJavaScript/Selezione
** IterazioneJavaScript/Iterazione
* Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
* Programmazione ad oggettiJavaScript/Oggetti
** Oggetto StringJavaScript/Oggetto String
** Oggetto MathJavaScript/Oggetto Math
** Oggetto DateJavaScript/Oggetto Date
** Oggetto ArrayJavaScript/Oggetto Array
* CookieJavaScript/Cookie
* TimerJavaScript/Timer
* L'oggetto windowJavaScript/BOM
** Gli eventi nel BOMJavaScript/Gli eventi nel BOM
** Oggetto documentJavaScript/Oggetto document
** Altri oggetti del BOMJavaScript/Altri oggetti del BOM
* Il Document Object ModelJavaScript/DOM
** Proprietà e metodiJavaScript/Proprietà e metodi del DOM
** Gli eventi nel DOMJavaScript/Gli eventi nel DOM
* Espressioni regolariJavaScript/Espressioni regolari
* AJAX
** Introduzione ad AJAXJavaScript/Introduzione ad AJAX
** Usare AJAXJavaScript/Usare AJAX
* Costruttori e prototipiJavaScript/Costruttori e prototipi
* AppendiceJavaScript/Appendice
* CreditiJavaScript/Crediti
Modifica il sommario

## Debugging

Il termine inglese debugging significa "togliere i bachi", dove i bachi sono i bug, gli errori nel codice.
I tipi di errore possono essere diversi: dai semplici errori di sintassi (possono essere paragonati ad una frase grammaticalmente scorretta in italiano) come la mancata chiusura di una parentesi, fino agli errori logici (come una frase che non ha alcun senso, nonostante sia grammaticalmente corretta); ad esempio, può essere un errore logico dimenticarsi di incrementare una variabile quando serve, oppure utilizzare un algoritmo sbagliato.

### Come evitare alcuni errori comuni

* Leggi attentamente il tuo codice per eventuali errori di battitura
* Assicurati che tutte le parentesi siano chiuse (può aiutare in questo un buon editor)
* Ricorda che JavaScript è case-sensitive: Name e name sono due variabili differenti
* Non usare parole riservate come nomi di variabili o di funzioni
* Ricordati di effettuare l'escape degli apici singoli/doppi:
* Quando converti i numeri usando la funzione parseInt ricorda che "08" o "09" sono valutati come numeri in base otto, a causa dello zero.
* Ricorda che JavaScript è indipendente dalla piattaforma, ma non lo è dal browser!

### Semplice debugging

Oltre a verificare la lista degli errori comuni, uno dei modi più semplici di effettuare il debugging del proprio codice consiste nell'utilizzare le istruzioni alert mostrando il contenuto di una variabile, oppure semplicemente come "segnaposto" per sapere a che punto si è del codice.
Supponiamo ad esempio che lo script non faccia quanto desiderato, magari fermandosi a metà: come si può individuare il punto esatto in cui lo script si ferma? Il modo più semplice è inserire, prima e/o dopo i blocchi di istruzioni che consideriamo "sensibili" o di cui non siamo certi della correttezza, istruzioni del tipo:
Per esempio, se verrà mostrato il primo messaggio, significa che fino a quel punto è tutto corretto ma se, ad esempio, non viene mostrato il secondo, significa che in mezzo ai due alert c'è l'istruzione "buggata".
Questo sistema è utile ad esempio nei cicli: per controllare ad ogni passaggio l'andamento del programma può essere comodo inserire nel ciclo un alert che mostri il valore del contatore e il valore delle altre variabili che intervengono nel programma, così da capire passo per passo cosa avviene effettivamente.

## Editor e strumenti utili

Un buon editor su Windows per JavaScript (e anche altri linguaggi) è Notepad++ che fornisce evidenziazione della sintassi per JavaScript e non solo.
Per Linux due editor molto diffusi sono Bluefish per Gnome e Quanta Plus per KDE.
Esistono poi alcuni utili estensioni di Firefox per i web-developer, come la Web Developer Toolbar, che aggiunge una toolbar con funzionalità specifiche per gli sviluppatori web, oppure Console2, un "upgrade" della normale console degli errori di Firefox.

## Link utili

* (IT) javaScript.html.it – Raccolta di guide, articoli e script dedicati
* (EN) w3schools.com – Tutorials, guide e reference.