JavaScript: Funksjoner

En funksjon er en gjenbrukbar blokk med kode. Den lar oss skrive kode én gang, og kjøre den så mange ganger vi vil og til og med tilpasse hvordan den oppfører seg!

1. Deklarasjon og Kall

Vi bygger ("deklarerer") funksjonen først. Det er som en slags 'oppskrift' til hvordan koden skal fungerere, men uten at noe skjer! For at koden blir utført, så må vi rope på den ("kalle på") med funksjonsnavn og parenteser.

function siHei() {
  console.log("Hei på deg!");
}

// Nå kaller vi på funksjonen:
siHei();
siHei();

2. Parametere

For at funksjoner skal være fleksible, kan vi sende inn informasjon til dem.
Disse kalles parametere (plassholdere i selve funksjonsdeklarasjonen) eller argumenter (de faktiske verdier som sendes til funksjonen).

function hils(navn) {
  console.log("Hei, " + navn + "!");
}

// Sender inn "Mario" som argument
hils("Mario");
hils("Luigi");
navn =
Hei, Mario!

3. Returverdier

Ofte vil vi at en funksjon skal regne ut noe og sende svaret tilbake i stedet for å bare printe det ut.
Da bruker vi return (uten parenteser e.l.).
OBS:Det vi sender tilbake må være en verdi, f.eks. "hei" (string), 23 (number), false (boolean), [1,2,3] (array) eller objekt. Det kan ikke være noe som console.log("hei")

function kalkulerNyPris(pris, rabattProsent) {
  let avslag = pris * (rabattProsent / 100);
  return pris - avslag;
}

let minPris = kalkulerNyPris(200, 25);
// minPris er nå 150
pris:
rabatt%:
Ny pris: 80

♻️ Fullstendig Gjenbrukbar

Kombinasjonen av parametere (data inn) og returverdier (data ut) gjør en funksjon til en komplett uavhengig "maskin".

Spesifikke verdier går inn, blir bearbeidet uansett hvor de kom fra, og et forutsigbart resultat spyttes ut og kan brukes videre hvor som helst i programmet!

❌ Ikke gjenbrukbar
// Koden under kaster en terning (1-6).
// Hvis vi vil kaste på nytt eller endre til 10 sider, må vi skrive alt om igjen!
let tilfeldigTall = Math.floor(Math.random() * 6) + 1;
console.log("Du trillet: " + tilfeldigTall);
✅ Fullt gjenbrukbar + mer fleksibel
// 1. Parameter 'antallSider' styrer maksverdien (input).
// 2. 'return' sender det ferdige tallet tilbake (output).
function trillTerning(antallSider) {
  return Math.floor(Math.random() * antallSider) + 1;
}

// Nå kan vi trille hva som helst, hvor som helst!
let vanligTerning = trillTerning(6);
let d20 = trillTerning(20);
let myntkast = trillTerning(2);

🗝️ Sentrale Begreper

  • Deklarere: Å bygge funksjonen, function navn() { ... }.
  • Kalle på: Å be koden om å kjøre, f.eks. navn(); (merk parentesene!).
  • Parameter: Variabler spesifisert inni parentesene under deklarasjonen.
  • Argument: Den faktiske verdien som sendes inn i funksjonen når den kalles.
  • return: Søkeord for å skyte en verdi tilbake der funksjonen ble kalt. Avslutter alltid funksjonen.