JavaScipt

Litt om språket


Plassering av JavaScript-kode

Vi kan i prinsipp plassere javaScript-kode hvor vi vil på en HTML-side. Koden skal pakkes inn i script-elementer.

<script type="text/javascript">
  function myfunction()
  {
    ...
  }
</script>

JavaScipt i <body>-elementet, js1.html

<html>
<body>
<script type="text/javascript">
  document.write("Hello World!")
</script>
</body>
</html>

JavaScipt i <head>-elementetst, js2.html

<html>
<head>
  <script type="text/javascript">
    function melding() 
    {
      alert("Hello World!")
    }
</script>
</head>
<body onload="melding()">
</body><
/html>

Et bedre alternativ er å legge skriptet på en fil for seg og la nettleseren hente det når siden lastes:

<script type="text/javascript" src="mycode.js"></script>

Det er to grunner til dette.

Javascript på egen fil, js3.html, kode1.js

<html>
<head>
  <script type="text/javascript" src="mycode.js"></script> </head>
<body onload="melding()">
</body><
/html>

Testing og debugging

Noen enkle mekanismer for å debugge:


Deklarering av variabler

Et enkelt eksempel, myNumber er global:

var myNumber; 
function setMyNumber(nr) { 
  myNumber=nr; 
} 

function showMyNumber() { 
  alert('My number is: '+myNumber); 
}

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 myNumber=123;

function setMyNumber(nr)
{
    myNumber=nr;
}

function showMyNumber()
{
    var myNumber=13;
    setMyNumber(24);
    // will allways display 13
    alert('My number is: '+myNumber);
}


Variable skal ikke typedeklareres og de kan instansieres

Tilordne verdier til variabler

Den vanligste måten å tilordne verdier til en variabel er ved bruk av =tegnet.

Eksempel Resultat verdi
a = 4; a = 4
a = 4; a++; a = 5 ( 4 + 1 )
a = 1; a += 4 a = 5 ( 4 + 1 )
a = 4; a--; a = 3 ( 4 - 1 )
a = 4; b = 3; c = a + b; c = 7 ( 4 + 3 )
a = 4; d = a + 6; d = 10 ( 4 + 6 )
forNavn = "Jens Morten"; forNavn = Jens Morten
etterNavn = "Frøhoel"; etterNavn = Frøhoel
fulltnavn = forNavn + " " + etterNavn; fulltNavn = Jens Morten Frøhoel
a = 2 * 7; a = 14 ( 2 * 7 )
b = 20 / 5; b = 4 ( 20 / 5 )
c = (20 / 5) * 2; c = 8 ( 4 * 2 )
d = 20 / (5 * 2); d = 2 ( 20 / 10 )

Eksempel med variabel: js4.html


Betingelser

JvaScript har følgende setninger for betingelser:


Operatorer for sammenligninger

Operator Beskrivelse Eksempel
== er lik med 5==8 returnerer false
=== er lik med (sjekker både verdi og type) x=5
y="5"

x==y returnerer true
x===y returnerer false

!= ulik 5!=8 returnerer true
> større enn 5>8 returnerer false
< mindre enn 5<8 returnerer true
>= større enn eller er lik 5>=8 returnerer false
<= mindre enn eller er lik 5<=8 returnerer true

Logiske operatorer

Operator Beskrivelse Eksempel
&& and (og) x=6
y=3

(x < 10 && y > 1) returnerer true

|| or (eller) x=6
y=3

(x==5 || y==5) returnerer false

! not (ikke) x=6
y=3

!(x==y) returnerer true


Popup bokser

JavaScript tilbyr tre forskjellige pop-up bokser:

jc9.html


Funksjoner

Syntaksen for å definere en funksjon

function funksjonsnavn(var1,var2,...,varX)
{
  kode; 
}

var1, var2 osv er variabler som overføres til funksjonen som parametere.

En funksjon uten parametere må likevel ha parentseser () etter funksjonsnavnet

function funksjonsnavn()
{
  kode;
}

Returvedi til funksjoner

return setningen brukes til å returnere en verdi fra funksjonen.

function prod(a,b)
{
  x=a*b
  return x
}

Funkjsjonen må kalles med to parametere

produkt=prod(2,3)

Returverdien fra funksjonen prod() er 6, og blir lagret i en variabel men navn produkt.

js10.html


for-løkke

Syntaks

for (var=startverdi; var<=sluttverdi; var=var+inkrement) 
{
    kode
}

js11.html, js12.html


while-løkke

Syntaks

while (var<=sluttverdi)
{
    kode
}

js13.html, js14.html


For...In-løkke

Brukes til å iterere gjennom elementene i en array eller egenskapene til et objekt.

Syntaks

for (variable in object)
{
    code to be executed
}

js15.html