JavaScript: teoria e dettagli delle variabili

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:

  1. 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.
  2. 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.

Torna su