⚙️
Basics

Functions

function Declaration, Parameters, Return
💡 Function ek recipe card hai — naam do, ingredients (parameters) list karo, steps likho, aur ek dish (return value) do. Ek baar likhne ke baad, jitni baar chaho use kar sakte ho.

function keyword se define karte hain. Parameters function ko "input" dete hain, return value "output" deta hai (bina return ke, function undefined return karta hai). Default parameters (ES6+) missing arguments ke liye fallback values dete hain.

function greet(name, greeting = "Hello") {   // default parameter
  return greeting + ", " + name + "!";
}

console.log(greet("Aarav"));              // "Hello, Aarav!"
console.log(greet("Riya", "Namaste"));    // "Namaste, Riya!"

function add(a, b) {
  return a + b;
}

const result = add(5, 3);   // 8
console.log(result);
⚙️
Function ek recipe card hai — naam do, ingredients (parameters) list karo, steps likho, aur ek dish (return value) do. Ek baar likhne ke baad, jitni baar chaho use kar sakte ho.
1 / 2
⚡ Quick Recap
  • function name(params) { return value; } = basic syntax
  • Default parameters = missing arguments ke liye fallback
  • Function declarations hoisted hote hain, expressions nahi
Is page mein (2 subtopics)

function name() {} ek "declaration" hai (hoisted). const name = function() {} ek "expression" hai (variable assignment jaisa, hoisted nahi — TDZ follow karta hai). Dono valid hain, use-case ke hisaab se choose karo.

// Declaration — file mein kahi bhi, kahi se bhi call ho sakta hai:
sayHello();   // valid, hoisting ki wajah se
function sayHello() { console.log("Hello!"); }

// Expression — define hone ke BAAD hi call ho sakta hai:
// sayGoodbye();   // ERROR agar upar likho
const sayGoodbye = function() { console.log("Bye!"); };
sayGoodbye();   // ab valid hai
💡Tip: Modern code mein function expressions (especially arrow functions) zyada common hain — declarations ka hoisting behavior kabhi-kabhi confusing bugs create kar sakta hai large codebases mein.

IIFE ek function hai jo define hote hi TURANT chal jaata hai — (function() { ... })(). Purane JavaScript mein variable scope isolate karne ke liye common pattern tha, modules aane se pehle.

(function() {
  const privateVar = "Ye bahar accessible nahi hai";
  console.log("IIFE chal gaya!");
})();
// Turant execute ho jaata hai, define hote hi
💡Tip: Modern JavaScript (ES6 modules) mein IIFEs kam common hain (modules khud scope isolation dete hain), lekin purane code/libraries mein bahut milte hain — pattern samajhna important hai.