In Javascript, functions can be assigned to variables in the same way that strings or arrays can. They can be passed into other functions as parameters or returned from them as well. A “higher-order function” is a function that accepts functions as parameters and/or returns a function.
Functions that operate on other functions, either by taking them as arguments or by returning them, are called higher-order functions.
Higher order functions are a result of functions being first-class citizens in javascript.