Posts
Moduli
I moduli sono il principale strumento per la strutturazione e la organizzazione del codice; il modulo consente di applicare il principio di incapsulazione di dati e procedure che è così importante nella programmazione contemporanea, non solo in JavaScript. Per mezzo della incapsulazione non solo si raccolgono dati e codice logicamente collegati in un unica struttura utilizzabile come un unicum (ad esempio si possono raccogliere in un modulo tutte le procedure e i dati relativi all’accesso a un database, oppure tutte le procedure relative alla gestione di particolari strutture dati), ma si possono anche nascondere tutti quei dettagli implementativi (variabili, costanti, procedure) di cui è bene evitare la modificabilità all’esterno del modulo stesso.
Posts
Closures
Le closures sono una caratteristica importantissima, addirittura fondamentale nel moderno JavaScript; il concetto di closures attiene esclusivamente alle funzioni (non ci sono closures senza funzioni), e descrive il fenomeno per il quale alcune variabili, dichiarate all’interno di funzioni, sono accessibili anche all’esterno della funzione nella quale sono dichiarate. Questo concetto sembra essere controintuitivo: in fondo una variabile è visibile solo all’interno dello scope nel quale è dichiarata, e una funzione apre e chiude un proprio scope.
Posts
Hoisting
Ogni variabile o dichiarazione di funzione ha un proprio ambito di visibilità e utilizzabilità (scope). Ma all’interno di uno scope una data variabile o funzione è visibile e accessibile anche prima della sua formale dichiarazione. E’ il meccanismo dello hoisting.
Cosa è To hoist in inglese significa sollevare qualcosa di pesante, a volte con appositi strumenti o corde; issare. In JavaScript è il meccanismo con il quale il compilatore (durante la fase del parsing) raccoglie tutte le dichiarazioni di funzione e di variabile trovate in uno scope e le sposta all’inizio dello scope stesso, in modo da poterle usare per tutti i riferimenti e le assegnazioni successive.