Eloquent JavaScript by Marijn Haverbeke
Let’s be friends with Lexical Scope, Closure, Recursive Functions, Exception Handling, Unwinding the Stack…
“We all think ourselves pretty clever, of course, but we are mere human beings, and even a moderate amount of chaos tends to baffle us.” – Marijn Haverbeke
Functions that operate on other functions are called higher-order functions. By operating on functions, they can talk about actions on a whole new level.
Being able to write what we want to do instead of how we do it means we are working at a higher level of abstraction. In practice, this means shorter, clearer, and more pleasant code.