Functions that can be treated like any other value - they can be assigned to variables, passed as arguments, and returned from other functions.
const greet = function(name) {
return "Hello, " + name;
};
// Function stored in variable can be called
console.log(greet("Babita ji")); // Output: Hello, Babita ji
Functions that either take other functions as arguments or return functions. They enable powerful programming patterns!
function greetUser(name, formatter) {
return formatter(name);
}
function uppercaseName(name) {
return name.toUpperCase();
}
// Passing function as argument
console.log(greetUser("babita ji", uppercaseName));
// Output: BABITA JI
const numbers = [1, 2, 3, 4, 5];
// map() - transforms each element
const doubled = numbers.map(x => x * 2);
// filter() - filters elements based on condition
const evens = numbers.filter(x => x % 2 === 0);
function sayHello() {
return "Hello from function!";
}
// Function reference (no parentheses)
console.log(sayHello);
// Function call (with parentheses)
console.log(sayHello());
function createMultiplier(factor) {
return function(number) {
return number * factor;
};
}
const double = createMultiplier(2);
const triple = createMultiplier(3);
First-Class Functions: Functions are values that can be stored, passed, and returned.
Higher-Order Functions: Functions that work with other functions, enabling powerful abstractions.
Real-world usage: Array methods, event handlers, callbacks, functional programming patterns.