You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Het is belangrijk zo efficiënt mogelijke code te schrijven. Hoe minder code hoe makkelijker het te begrijpen is. Dit zorgt ook voor minder bugs en minder plekken voor bugs om zich te verstoppen.
Wat hierbij helpt is abstraction. Abstraction laat de details achterwegen zodat je problemen op een hoger niveau kan inzien. Het is belangrijk dat je erop let dat je niet te laag werkt omdat je dan hele lange code krijgt.
Abstracting repetition
Programma’s voeren regelmatig een bepaalde taak meerdere keren uit. In plaats van elke keer een for loop te schrijven kan je ook een functie schrijven waarbij je het aantal herhalingen en de actie meegeeft.
let labels = [];
repeat(5, i => {
labels.push(Unit ${i+1});
}));
let labels = [];
repeat(5, i => {
labels.push(Unit ${i + 1});
});
console.log(labels);
// → ["Unit 1", "Unit 2", "Unit 3", "Unit 4", "Unit 5"]
Higher order functions
Dit zijn functies die op andere functies draaien door ze als args te nemen of te returnen. Dit zorgt voor meer abstractie.
function greaterThan(n) {
return m => m > n;
}
let greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// → true
Array
Arrays hebben een aantal higher-order methods. Je hebt forEach om door elk element van de array te loopen. Filter geeft een nieuwe array met alleen de elementen die de test functie doorkomen. Met map kan je een array transformeren, als je een array van objects heb kan je bijvoorbeeld alleen een bepaalde property in de array doen in plaats van het hele object. Met reduce kan je alle elementen combineren tot één value.
Chapter 5: Higher Order functions
Absctraction
Het is belangrijk zo efficiënt mogelijke code te schrijven. Hoe minder code hoe makkelijker het te begrijpen is. Dit zorgt ook voor minder bugs en minder plekken voor bugs om zich te verstoppen.
Wat hierbij helpt is abstraction. Abstraction laat de details achterwegen zodat je problemen op een hoger niveau kan inzien. Het is belangrijk dat je erop let dat je niet te laag werkt omdat je dan hele lange code krijgt.
Abstracting repetition
Programma’s voeren regelmatig een bepaalde taak meerdere keren uit. In plaats van elke keer een for loop te schrijven kan je ook een functie schrijven waarbij je het aantal herhalingen en de actie meegeeft.
let labels = [];
repeat(5, i => {
labels.push(
Unit ${i+1}
);}));
let labels = [];
repeat(5, i => {
labels.push(
Unit ${i + 1}
);});
console.log(labels);
// → ["Unit 1", "Unit 2", "Unit 3", "Unit 4", "Unit 5"]
Higher order functions
Dit zijn functies die op andere functies draaien door ze als args te nemen of te returnen. Dit zorgt voor meer abstractie.
function greaterThan(n) {
return m => m > n;
}
let greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// → true
Array
Arrays hebben een aantal higher-order methods. Je hebt forEach om door elk element van de array te loopen. Filter geeft een nieuwe array met alleen de elementen die de test functie doorkomen. Met map kan je een array transformeren, als je een array van objects heb kan je bijvoorbeeld alleen een bepaalde property in de array doen in plaats van het hele object. Met reduce kan je alle elementen combineren tot één value.
Bronnen:
Higher-Order Functions :: Eloquent JavaScript. (2011). Marijn Haverbeke. https://eloquentjavascript.net/05_higher_order.html
The text was updated successfully, but these errors were encountered: