Lambda saysFunctions package reusable logic — declared with function or assigned as expressions.
A declaration (function add(a,b){…}) is hoisted and callable anywhere in scope. A function expression (const add = function(){…}) is not hoisted — it exists only after the line runs. Functions are first-class values: you can store them, pass them, and return them.
Power-ups you unlock
Declarations hoist; expressions do not
Functions are first-class values
Pass them as arguments, return them
Parameters in, return value out
The Mutator attacks — common mistakes
Calling a function expression before it’s assigned
Forgetting to return (function yields undefined)
Confusing the two forms’ hoisting behavior
Boss battleWrite the same function as a declaration and as an expression; note the hoisting difference.