Allmänt
Funktioner är ett spännande kapitel i JavaScript. Även om allt är objekt så är JavaScript ett funktionsorienterat språk, men mer om det senare. Först tar vi grunderna.
Funktioner kan skapas på olika sätt, jämför följande sätt att använda och skapa en funktion.
function square (x) { // Traditionellt sätt,
return x*x; // att jämföra med C/C++, PHP.
}
val = square(x);
let square = function (x) { // Funktions literal / Funktion expression,
return x*x; // funktionen tilldelas en variabel
}
val = square(x);
element.onclick = function () { // Namnlös funktion som används
alert('Hello'); // som eventhanterare.
}
element.addEventListener("click", function () {
alert('Hello'); // Variant på namnlös funktion som
}); // eventhanterare som skickas som
// parameter i en funktion.
Funktioner har en argumentlista. Om man anropar funktionen med färre argument än listan så får de kvarvarande argumenten värdet undefined
.
function sum(a, b, c) {
return a + b + c;
}
sum(1, 2, 3); // returnerar 6
sum(1, 2); // returnerar NaN
Man kan ge “default”-värden på ett argument med hjälp av operatorn ||
. Studera följande funktion.
function sum(a, b, c) {
a = a || 0;
b = b || 0;
c = c || 0;
return a + b + c;
}
sum(1, 2, 3); // returnerar 6
sum(1, 2); // returnerar 3
Man kan även hantera en variabel argument-lista med identifieraren arguments
som finns tillgänglig inuti funktionen.
function sum() {
let i, sum = 0;
for(i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
sum(1, 2, 3); // returnerar 6
sum(1, 2, 3, 4, 5, 6); // returnerar 21
Den inbyggda variabeln arguments
är en array som innehåller samtliga argument som skickats till funktionen.