Functions
Intro
➡️ In code moeten we deze stappen expliciet doen
Wat is een functie?
Wat is een functie?
function showForecast() {
console.log("15°C | ☀️");
}
Wat is een functie?
const button = document.querySelector("button");
button.addEventListener("click", showForecast);
function showForecast() {
console.log("15°C | ☀️");
}
Functies definiëren
1. Named functions
function sayHey() {
console.log("Hey!");
}
function
keyword()
{}
2. Arrow functions
const sayHey = () => {
console.log("Hey!");
}
// function sayHey() {
// console.log("Hey!");
// }
function
keyword3. Inline functions
button.addEventListener("click", function() {
console.log("Clicked!");
});
button.addEventListener("click", () => {
console.log("Clicked!");
});
Functies aanroepen
Functies callen
function sayHey() {
console.log("Hey!");
}
sayHey(); // "Hey!"
Functies callen
button.addEventListener("click", mijnFunctie);
button.addEventListener("click", mijnFunctie());
✅ By reference - Wordt enkel uitgevoerd on click
❌ By value - Wordt meteen al uitgevoerd on page load
Parameters
& arguments
Parameters
()
function sayHey(name) {
console.log(`Hey, ${name}!`);
}
sayHey("Nathalia"); // "Hey, Nathalia!"
sayHey("Brahim"); // "Hey, Brahim!"
argument
De effectieve waarde van de parameter die je doorgeeft aan de functie. In dit voorbeeld een string.
parameter
Een naam van de parameter. In dit voorbeeld name
.
Parameters
,
function showAge(age, name) {
console.log(`${name} is ${age} jaar.`);
}
showAge(50, "Wim Soutaer"); // "Wim Soutaer is 50 jaar."
Default waardes
Soms wil je een standaardwaarde instellen voor wanneer er geen argument wordt meegegeven, maar je dit wel nodig hebt:
function greet(name = "student") {
console.log("Good morning, " + name + "!");
}
greet("Hadise"); // Good morning, Hadise!
greet(); // Good morning, student!
Bevat informatie over de actie, zoals:
ingedruke toets
geklikte element
...
Event Object in Event Listeners
// Default
button.addEventListener("click", function (event) {
console.log("Geklikt op:", event.target);
});
Event Object in Event Listeners
// Named function
function handleClick(event) {
console.log("Geklikt op:", event.target);
}
button.addEventListener("click", handleClick);
// Named arrow function
const handleClick = (event) => {
console.log("Geklikt op:", event.target);
};
button.addEventListener("click", handleClick);
// Default function
button.addEventListener("click", function (event) {
console.log("Geklikt op:", event.target);
});
// Arrow function
button.addEventListener("click", (event) => {
console.log("Geklikt op:", event.target);
});
Return values
Return values
function revealIdool2003Winner() {
const peterPoints = 52;
const nataliaPoints = 48;
let winner = null;
if (peterPoints > nataliaPoints ) {
winner = "Peter";
} else {
winner = "Natalia";
}
document.querySelector("#winner").innerText = winner;
}
revealIdool2003Winner();
Return values
// ------------- Geeft een waarde terug -------------
function getWinner() {
const peterPoints = 52;
const nataliaPoints = 48;
let winner = null;
if (peterPoints > nataliaPoints ) {
winner = "Peter";
} else {
winner = "Natalia";
}
return winner;
}
// ------------ Verandert iets in de DOM ------------
function revealIdool2003Winner() {
document.querySelector("#winner").innerText = getWinner();
}
revealIdool2003Winner();
Return values
return
keyword kan je een waarde teruggevenfunction verdubbel(x) {
return x * 2;
};
const resultaat = verdubbel(5);
console.log(resultaat); // Output: 10
Return values in Arrow functions
Kan je op één lijn schrijven:
{}
return
// Lang
const som = (a, b) => {
return a + b;
}
// Kort
const som = (a, b) => a + b;
Hoisting
JavaScript = sequentieel
{}
#Throwback
✨Hoisting✨
doIExist(); // output: Yes!
function doIExist() {
console.log("Yes!");
}
Hoisting
Dit geldt niet voor arrow functions:
doIExist(); // Error: Cannot access 'doIExist'
// before initialization
const doIExist = () => {
console.log("Yes!");
}
Ingebouwde functies
Ingebouwde functies
JavaScript bevat al veel ingebouwde functies die we direct kunnen gebruiken - en al gebruikt hebben.
// DOM manipulatie
document.querySelector(".menu"); // Zoekt element met class 'menu'
document.querySelectorAll("button"); // Zoekt alle button elementen
// Strings en getallen
const nummer = parseInt("42"); // Zet string om naar een getal
const randomNumber = Math.random(); // Getal tussen 0 en 1
console.log("Tekst".toUpperCase()); // "TEKST"
// Arrays
const warmFruit = ["appel", "peer"];
warmFruit.push("ananas"); // Voegt item toe aan array
console.log(lijst.length); // Telt aantal items in array
// Data en tijd
const nu = new Date(); // Huidige datum en tijd
console.log(nu.getFullYear()); // bv. 2025
setTimeout(() => alert("Go"), 1000); // Alert verschijnt na 1s