Variabel scope

Fra Holstebro HTX Wiki
Skift til: navigering, søgning

Hvad er en variabel scope?

Begrebet Scope dækker over hvor ting kan ses i koden.

En variabels scope er de steder i koden hvor man kan "se" variablen, og bruge den.

Hvis variablen er oprettet inde i en funktion så kan den kun ses inde i funktionen, mens den virker derfor ikke udenfor funktionen.

Andre variabler, der er oprettet uden for funkionen vil virke både uden for funktionen og inde i funktionen (de kaldes globale variabler).

Eksempler

Det at forklare hvordan de forskellige former for variabel scope fungerer er lettest at forklare ved hjælp af eksempler.

Eksempel på global variabel

Her illustreres hvordan en global variabel kan rettes i en funktion

 var i = 0;  // Denne variabel er global
 function yy (){
   i = 1;    // Her ændres den globale variabel
   document.write(i + "<br />");
 }
 document.write(i + "<br />");  // Her skrives den oprindelige værdi af i  - 0
 yy();                          // Her rettes i til 1 og udskrives         - 1
 document.write(i + "<br />");  // Her er værdien stadig 1, så der skrives - 1

Koden kan hentes i denne: ZIP-fil

Eksempel på lokal variabel og global variabel

Her illustreres hvordan man kan have global variabel samtidig med en lokal variabel med samme navn, men med forskelligt indhold inde i en funktion

 var i = 0;  // Denne variabel er global
 function yy (){
   var i = 1;    // Her oprettes en lokal variabel med samme navn
   document.write(i + "<br />");
 }
 document.write(i + "<br />");  // Her skrives den oprindelige værdi af i  - 0
 yy();                          // Her udskrives den lokale variabel       - 1
 document.write(i + "<br />");  // Her er værdien stadig 0, så der skrives - 0

Koden kan hentes i denne: ZIP-fil

Eksempel på lokal variabel der kun er lokal

Her illustreres hvordan en lokal variabel kun kan ses inde i en funktion

 var p = 0;  // Denne variabel er global
 function yy (){
   var i = 1;    // Her oprettes en lokal variabel med et andet navn
   document.write(i + "<br />");
 }
 document.write(p + "<br />");  // Her skrives den oprindelige værdi af p  - 0
 yy();                          // Her udskrives den lokale variabel       - 1
 document.write(i + "<br />");  // Her kan man ikke se variablen i - koden vil lave en fejl

Koden kan hentes i denne: ZIP-fil