Questa guida alle tecniche avanzate di Javascript si occuperà di analizzare alcune caratteristiche chiave del linguaggio. Sono caratteristiche che una volta comprese potranno fornire allo sviluppatore tutta una serie di vantaggi.
Da un lato faciliteranno lo sviluppo: si potranno infatti realizzare strutture e algoritmi più snelli e più rapidi da scrivere. Dall'altro lato si ottiene il risultato di migliorare la stabilità dell'applicazione, la quale potrà contare su una struttura portante più solida e manutenibile.
Le lezioni, nonostante presentino argomenti prettamente teorici, verranno accompagnate, quando possibile, da esempi che chiariranno al meglio gli aspetti trattati.
Nello specifico, gli argomenti trattati saranno i seguenti:
- La tematica dello scope: aspetto fondamentale del linguaggio che permette di ridurre in modo drastico le linee di codice sia perché diminuiscono i parametri che vengono in qualche modo scambiati tra le diverse componenti sia perché è possibile eliminare qualsiasi duplicato di funzione cambiando semplicemente l'ambiente nella quale essa viene eseguita.
- Le closure: una closure può essere definita come una espressione o una funzione che può accedere a particolari variabili presenti in un ambiente ben delimitato che appunto "racchiude" la funzione. é un concetto molto discusso soprattutto recentemente visto l'enorme successo di JavaScript, linguaggio che interpreta perfettamente questa definizione. Le maggiori potenzialità di questa tecnica emergono infatti proprio nel linguaggio di scripting principe nell'epoca di AJAX e delle richieste asincrone effettuate da pagine web.
- La programmazione ad oggetti: rappresenta una metodologia di sviluppo software che si contrappone alla programmazione procedurale, spesso troppo poco gestibile e confusionaria.
- Il module pattern: un pattern che permette, tramite una tecnica particolare, di poter usufruire dei modificatori di visibilità anche in JavaScript.
- Il Lazy Loading: una particolare tecnica che cerca di risolvere il problema delle performance in applicazioni AJAX, problema sentito soprattutto su connessioni non a banda larga.