Variabili locali
Ogni funzione può essere dotata di risorse locali necessarie per l’elaborazione richiesta.
Al termine dell’esecuzione della funzione le variabili locali vengono abbandonate.
1 2 3 4 5 |
function NomeFunzione(...) { var a, b ... } |
Variabili globali
Le variabili dichiarate all’esterno delle funzioni sono globali perché sono visibili da tutto il codice successivo alla loro comparsa.
1 2 3 4 5 6 7 8 9 10 11 12 |
var a, b ... function NomeFunzione(...) { a=... b=... ... } ... NomeFunzione() a=... b=... |
Una variabile locale con lo stesso nome di una variabile globale copre quest’ultima che diventa quindi irraggiungibile per la funzione.
Tutti i riferimenti locali agiranno sulla variabile locale
1 2 3 4 5 6 7 8 9 10 11 12 |
var a, b ... function NomeFunzione(...) { var a=... // variabile locale b=... // variabile globale ... } ... NomeFunzione() a=... // non è stata modificata nella funzione! b=... // è stata modificata nella funzione |
Utilizzando sia variabili globali che locali e richiamando diverse funzioni può diventare difficile controllare tutto… (Visibilità delle variabili)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<script language="JavaScript"> var a=10; var b=5; document.writeln("Globali 1: " + a + " "+ b + "<br/>") function funzione1() { a=10*a; b=b-1; document.writeln("--Funzione1: " + a + " "+ b + "<br/>"); } function funzione2() { var a=1000; a=10*a; b=b-1; document.writeln("--Funzione2: " + a + " "+ b + "<br/>"); } document.writeln("Globali 2: " + a + " "+ b + "<br/>"); funzione1(); document.writeln("Globali 3: " + a + " "+ b + "<br/>"); funzione2(); document.writeln("Globali 4: " + a + " "+ b + "<br/>"); </script> |
Osserva
- prima delle chiamate alle funzioni a e b mantengono i valori iniziali
- dopo funzione1() entrambe le variabili risultano aggiornate
- dopo funzione2() risulta aggiornata solo b…