ECMAScript funktionsoversigt

Hvad er en funktion?

Funktioner er en gruppe statements, der kan køres hvor som helst og når som helst.

Funktioner er ECMAScript's kerne.

Funktioner er erklæret på denne måde: nøgleord function, funktionens navn, en gruppe parametre, og kode, der skal udføres, placeret i parenteser.

Funktionens grundlæggende syntaks er som følger:

function functionName(arg0, arg1, ... argN) {
  statements
}

Eksempel:

function sayHi(sName, sMessage) {
  alert("Hello " + sName + sMessage);
}

Hvordan kaldes en funktion?

Funktionen kan kaldes ved dens navn sammen med parametre i parenteser, hvis der er flere parametre.

Hvis du vil kalde funktionen fra det tidligere eksempel, kan du bruge følgende kode:

sayHi("David", " Nice to meet you!")

Kald af funktionen sayHi() vil generere et advarselsvindue. Du kanPrøv denne eksempel selv

Hvordan returnerer en funktion værdi?

Funktionen sayHi() returnerer ikke en værdi, men det er ikke nødvendigt at erklære det specifikt (som i Java med void).

Selvom funktionen faktisk har en værdi, er det ikke nødvendigt at erklære den klart. Funktionen skal kun bruge return operatoren efterfulgt af den værdi, der skal returneres.

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
}

Nedenstående kode tildeler værdien, som sum funktionen returnerer, til en variabel:

var iResult = sum(1,1);
alert(iResult);	//Uddeler "2"

En anden vigtig koncept er, at funktioner i Java stil stopper med at køre kode øjeblikkeligt efter en return sætning. Derfor vil ingen kode efter return sætningen blive udført.

Eksempelvis vil advarselsboksen ikke blive vist i nedenstående kode:

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
  alert(iNum1 + iNum2);
}

En funktion kan have flere return sætninger, såsom nedenfor:

function diff(iNum1, iNum2) {
  if (iNum1 > iNum2) {
    return iNum1 - iNum2;
  }
    return iNum2 - iNum1;
  }
}

Denne funktion bruges til at returnere forskellen mellem to tal. For at gøre dette skal man bruge det større tal minus det mindre tal, således at man bruger en if sætning til at afgøre, hvilken return sætning der skal udføres.

Hvis funktionen ikke har en returværdi, kan man kalde return operatoren uden parametre, for at afslutte funktionen når som helst.

Eksempel:

function sayHi(sMessage) {
  if (sMessage == "bye") {
    return;
  }
  alert(sMessage);
}

I denne kode vil advarselsboksen aldrig blive vist, hvis sMessage er lig med "bye".

Bemærk:Hvis funktionen ikke har en tydelig returværdi, eller hvis der kaldes en return sætning uden parametre, er den faktiske returværdi undefined.