Hint
Functions are values — assignable, passable, returnable, storable
Functions are first-class citizens — they're treated as values just like strings or numbers. This means:
// Assigned to variable
const greet = (name) => 'Hello, ' + name;
// Passed as argument (callback)
[1, 2, 3].forEach(function(n) { console.log(n); });
// Returned from function
function makeAdder(x) {
return (y) => x + y; // ← function as return value
}
const add5 = makeAdder(5);
add5(3); // 8
// Stored in object
const math = {
add: (a, b) => a + b,
sub: (a, b) => a - b,
};
// Has properties
function fn() {}
fn.version = '1.0';
console.log(fn.name); // 'fn'
console.log(fn.length); // 0 (param count)