PROGRAMMIAMO
JS - Dichiarare le variabili
Dichiarazione esplicita e dichiarazione implicita

In molti linguaggi di programmazione (es. il C++) prima di poter usare una variabile è necessario dichiararla, cioè usare un'apposita istruzione (dichiarazione) per definire la variabile stessa dandole un nome e un tipo. In JS non è invece necessario dichiarare una variabile: è sufficiente assegnarle un valore e la dichiarazione è automatica (dichiarazione implicita).

In parole povere, è sufficiente usare una variabile perché questa venga creata automaticamente. Per esempio la seguente istruzione

risultato = 1 + 2;

crea automaticamente una variabile di nome risultato e le assegna il valore 3.

E' tuttavia possibile dichiarare le variabili con l'istruzione var (dichiarazione esplicita) con la seguente semplice sintassi:

var risultato;
risultato = 1 + 2;

o anche in modo equivalente:

var risultato = 1 + 2;

È anche possibile dichiarare più variabili con un'unica istruzione var nel seguente modo:

var risultato, numero, pippo;

ATTENZIONE:

Si presti attenzione al fatto che in JS una variabile non esiste se prima non è stata inizializzata (cioè dichiarata implicitamente tramite una assegnazione) oppure dichiarata esplicitamente con una istruzione var. Per esempio il seguente ciclo che acquisisce una serie di valori e ne calcola la somma non funzionerebbe perché all'inizio del ciclo la variabile ris non esiste:

function sommatoria() {

tot=0;

//bisogna aggiungere qui una dichiarazione esplicita: var ris
//oppure una assegnazione con lo scopo di dichiarare ris: ris=0

while (ris!="stop")
   {
   ris = prompt("Scrivi un numero (stop per terminare):","");
   if (ris!="stop")
      {
      tot = tot + parseFloat(ris);
      }
   }
alert("La sommatoria di tutti i numeri inseriti vale " + tot);

}

 

Utilità di dichiarare le variabili in JavaScript

Abbiamo visto come in JS non sia necessario dichiarare una variabile prima di usarla. Tuttavia la dichiarazione esplicita è possibile tramite l'istruzione var. Qual è dunque l'utilità di dichiarare esplicitamente una variabile?

La prima ragione per cui è utile (anzi, addirittura consigliato) dichiarare esplicitamente le variabili è il fatto che, in questo modo, è possibile verificare se una variabile è stata inizializzata (cioè se le è stato assegnato qualche valore) oppure no. In JS infatti le variabili dichiarate ma non assegnate (cioè senza un valore) hanno per default il valore undefined (in realtà si tratta non di un valore ma piuttosto di un tipo, ma queste sottigliezze esulano dagli scopi della nostra trattazione). Si consideri l'esempio seguente il quale verifica se una variabile di nome pippo è stata definita oppure no:

if (variabile == undefined)
{
alert("Variabile non inizializzata!");
}

Si presti attenzione al fatto che le istruzioni di verifica dell'esempio qui sopra non funzionano se la variabile non è stata dichiarata esplicitamente con un'istruzione var. Se la variabile non è stata dichiarata esplicitamente, è possibile controllare se esiste attraverso la funzione typeof (la quale in realtà verifica qual è il tipo della variabile e torna "undefined" se tale tipo non è stato definito - attenzione in questo caso all'uso degli apici attorno a undefined!):

if (typeof(abc) == "undefined")
{
alert("Variabile non inizializzata!");
}

ATTENZIONE:

La programmazione in JS è particolarmente soggetta a errori quando si sbaglia a scrivere il nome di una variabile. Dato che le variabili non devono essere dichiarate esplicitamente, se nel programma un nome di variabile viene scritto in modo errato, JS interpreta questo nome come una nuova variabile. Si consideri l'esempio seguente:

var numero = 12;
numro = 3;                // Il nome della variabile è stato scritto in modo sbagliato

alert(numero);

Siccome l'assegnazione numro = 3 contiene un errore nel nome della variabile, l'istruzione alert visualizzerà il valore 12 (e non 3, che invece viene assegnato a una nuova variabile di nome numro).

La dichiarazione esplicita delle variabili con l'istruzione var è molto utile quando si usano strumenti di debugging per verificare gli errori sintattici presenti in una pagina. Infatti questi strumenti segnalano spesso un avvertimento (warning) quando si utilizza una variabile che non è stata dichiarata. Se si prende l'abitudine di dichiarare sempre le variabili, è in questo modo possibile individuare un errore di battitura nel nome di una variabile (es. scrivendo una variabile di nome numero erroneamente numro, si riceve un warning dal validatore). 

Infine la dichiarazione var è inoltre necessaria se si vogliono dichiarare variabili locali (infatti omettendo la dichiarazione, le variabili sono automaticamente considerate sempre globali). Le variabili globali mantengono il proprio valore su tutto il documento html che contiene lo script; le variabili locali invece hanno valore solo all'interno della funzione che le ha dichiarate. Vedremo meglio nel seguito parlando di funzioni la differenza fra variabili locali e globali. Per adesso basti sapere che se una variabile non è dichiarata con var essa è disponibile e utilizzabile in tutta la pagina html e da tutte le funzioni presenti nella pagina. In alcuni casi invece si vuole restringere la utilizzabilità di una variabile e in questi casi si ricorre all'uso di variabili locali.

ATTENZIONE:

Le dichiarazioni delle variabili possono essere inserite in ogni punto del codice ma sono implicitamente innalzate (hoisted) come se fossero state dichiarate allo inizio dello script (o della funzione in caso di variabili locali): è quindi corretto assegnare un valore ad una variabile prima di averla dichiarata.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it