CONCEPTS
01Function declarations vs expressions
02Arrow functions
03Default parameters
04Rest and spread operators
05Lexical scope
06Closures
SYNTAX_DEMO
Reusable logic blocks
// Function declaration
function greet(name, greeting = "Hello") {
return `${greeting}, ${name}!`;
}
// Arrow function
const square = (x) => x * x;
// Closure
function createCounter() {
let count = 0;
return () => ++count;
}
const counter = createCounter();
console.log(counter()); // 1