Le variabili sono un componente fondamentale di qualsiasi linguaggio di programmazione. In JavaScript le variabili occupano un ruolo importantissimo, perchè costituiscono, come noto, un modo per manipolare i dati al fine di ottenere un risultato.
Dichiarazione
Le variabili JavaScript vengono dichiarate con la parola chiave var
:
var test = 'Hello';
Ora la variabile test
contiene la stringa Hello
e può essere manipolata:
alert(test[0].toLowerCase()); // 'h'
Le variabili possono anche essere dichiarate senza la parola chiave var
, ma questa pratica è sempre sconsigliata in quanto una variabile dichiarata in questo modo diventa automaticamente una proprietà dell'oggetto globale window
, inquinando così il namespace del nostro codice.
Tipi di dati
Una variabile può contenere tutti i tipi di dati ammessi in JavaScript, come ad esempio stringhe, numeri, oggetti, funzioni, array, ed anche dati peculiari come null
.
Variabili locali e globali
Le variabili si dividono in due gruppi:
- Variabili locali – Vengono definite in un contesto locale, come ad esempio all'interno di una funzione. Non sono accessibili al di fuori di tale contesto.
- Variabili globali – Vengono definite in un contesto globale, e sono accessibili in qualsiasi parte del codice.
Ecco un esempio di variabile locale:
var test = function() {
var uri = location.href; // locale: è nel contesto di test()
this.getQueryString = function() {
// uri è accessibile in quanto sempre nel contesto di test()
return uri.substring(uri.indexOf('?'), uri.length);
}
};
Non si può accedere ad uri
al di fuori dell'oggetto test()
. Ecco invece un esempio di variabile globale:
var uri = location.href; // globale: accessibile a tutto il codice
var test = function() {
this.getQueryString = function() {
return uri.substring(uri.indexOf('?'), uri.length);
}
};
var test2 = function() {
this.getQueryParams = function() {
var query = uri.substring(uri.indexOf('?'), uri.length);
var parts = query.split('&');
return parts;
}
};
Le variabili globali andrebbero sempre evitate in quanto compromettono l'integrità del namespace del nostro codice e possono generare conflitti con altri script.