JavaScript
Børre Stenseth
Noen begreper >Variable

Variable

JavaScript har ikke noe type-begrep. Det vil i korthet si at vi har bare en variable-type: var. Hvordan en slik variabel tolkes er avhegig av hva den inneholder og i vilken setting den brukes. Du vil se masse eksempler på det i de følgende modulene.

Eksempler:

// integer
var startNummer=12;
// float
var resultat=9.21;
// text
var name="Justin Bolt";
// boolean
var diskvalifisert=false;
// array
var konkurrenter=["Gatlin","Brown","Jensen"]

Vi trenger strengt tatt ikke deklarere variable. Begge disse formene er lovlige:

var myNumber=12;
myNumber=12;

Det er en god vane å bruke den første formen, selv om det i enkle situasjoner ikke betyr noe når vi f.eks. bruker lokale hjelpevariable inne i en funksjon.

Globale variable i JavaScript er rett fram og enkelt. Alt vi definerer utenom funksjoner er tilgjengelig i alle funksjoner. Et enkelt eksempel, myNumber er global og derved tilgjenglig i begge funksjonene:

var myNumber;
function setMyNumber(nr){
    myNumber=nr;
}
function showMyNumber(){
    setMyNumber(24);
    alert('My number is: '+myNumber);
}

Test:

Ved å bruke var foran en variable sikrer vi oss at variabelen er definert for den blokken (scope) vi er i. Det er en god vane å bruke var for å unngå å bruke globale variable med samme navn ved en misforståelse.

var myNumber2=123;
function setMyNumber2(nr){
    myNumber2=nr;
}
function showMyNumber2(){
    var myNumber2=13;
    setMyNumber2(24);
    // will allways display 13
    // since it is a local variable
    alert('My number is: '+myNumber2);
}

Test:

null og undefined

JavaScript definerer to konstanter, verdier, null og undefined.

undefined betyr at en variable ikke har fått noen verdi. Dette er en situasjon som ville bli fanget opp under kompilering i et kompilert språk.

null betyr at en variabel eksplisitt har fått verdien null. null tilsvarer det vi kjenner fra andre språk, null i Java, None i Python, og sier oss at en referanse referer til ingenting.

function test1()
{
   var S;
   var T=null;
   alert("S:"+S+" , T: "+T);
}

Test:

Begge verdiene fungerer som boolske (true eller false) verdier i en if-test:

function test2()
{
   var S;
   var T=null;
   if(S || T)
       alert("S:"+S+" , T: "+T);
   else
       alert("begge er false");
}

Test:

Det betyr at vi kan lage følgende konstruksjon:

function arrayTester()
{
  liste=new Array(5);
  liste[0]='hans';
  liste[1]='jens';
  liste[4]='kari';
  var S=''
  for(var ix=0;ix<liste.length;ix++)
    if(liste[ix])
      S+=liste[ix]+'\n';
  alert(S);
}

Test:

Noen begreper >Variable