Closures and higher-order functions
Treat functions as values, remember state with closures and process arrays with map, filter and reduce.
What you will be able to do
- Return functions from functions
- Explain what a closure keeps
- Use map, filter and reduce
A closure is a function that keeps access to the scope where it was created. Higher-order functions take or return other functions, which makes small building blocks composable.
function makeCounter() {
let count = 0;
return () => ++count;
}
const next = makeCounter();
console.log(next(), next(), next());
const scores = [88, 92, 79, 95];
const passed = scores.filter((score) => score >= 80);
const curved = scores.map((score) => Math.min(100, score + 3));
const total = scores.reduce((sum, score) => sum + score, 0);
console.log(passed);
console.log(curved);
console.log(total, Math.round(total / scores.length));- Closure
- A function plus the variables it captured.
- Callback
- A function passed to another function.
- Higher-order
- A function that takes or returns a function.
- Pure function
- Same input, same output, no side effects.
Your turn
MediumAverage with reduce
Return the average score using reduce, and 0 for an empty list.
JAVASCRIPT · starter
function average(scores) {
// your code here
}Check your understanding before moving on.
Knowledge checkQuestion 1
What does filter return?
Select an answer to continue
Study tools
Make it yours.
Keep a private note for this lesson, then turn the key ideas into flashcards you can revisit.
Sign in to save notes and flashcards.Both are private to your account and stay with your progress.
Sign inFinished reading?
Lock in what you just learned.
0%
Mark this lesson complete to save your place and move one step closer to the certificate.