JavaScript Functions
Function Declaration
JavaScript
function greet(name) { return `Hello, ${name}!`; } console.log(greet("Mohan")); // "Hello, Mohan!" // Declarations are hoisted — you can call them before they're defined sayHi(); // works! function sayHi() { console.log("Hi!"); }
Function Expression
JavaScript
const greet = function(name) { return `Hello, ${name}!`; }; // NOT hoisted — must be defined before calling greet("Priya"); // works
Default Parameters
JavaScript
function createUser(name, role = "student", active = true) { return { name, role, active }; } createUser("Ravi"); // {name:"Ravi", role:"student", active:true} createUser("Admin", "admin"); // {name:"Admin", role:"admin", active:true}
Rest Parameters
JavaScript
// ...rest collects remaining arguments into an array function sum(...numbers) { return numbers.reduce((total, n) => total + n, 0); } sum(1, 2); // 3 sum(1, 2, 3, 4); // 10 sum(10, 20, 30); // 60
Multiple Returns
JavaScript
function divide(a, b) { if (b === 0) return null; // early return return a / b; } // Return multiple values via object or array function getMinMax(arr) { return { min: Math.min(...arr), max: Math.max(...arr) }; } const { min, max } = getMinMax([3, 1, 7, 2]); // min = 1, max = 7
Pure Functions
JavaScript
// Pure: same input → same output, no side effects function add(a, b) { return a + b; } // pure ✓ // Impure: modifies external state let total = 0; function addToTotal(n) { total += n; } // impure — side effect // Prefer pure functions — easier to test and reason about