🔧 JavaScript Functions: Basics, Arrow & HOF

1. Functions in JavaScript

Functions woh hotay hain jo aap ka code repeat hone se bachatay hain. Aap logic ko aik block mein wrap kar ke baar baar use kar saktay ho.

🔹 Function Declaration

Ye classic tareeqa hai function define karne ka, jisme function ka naam diya jata hai.

function greet(name) {
  return "Hello, " + name;
}
console.log(greet("Zohaib")); // Hello, Zohaib

🔹 Function Expression

Function ko aik variable mein store karte hain.

const add = function(a, b) {
  return a + b;
};
console.log(add(5, 3)); // 8

2. Arrow Functions

Arrow functions aik modern aur short tareeqa hai function likhne ka. Choti logic ya quick kaam ke liye best hain.

🔹 Basic Arrow Function

Agar function aik line ka ho to return aur curly brackets {} skip kar saktay hain.

const multiply = (x, y) => x * y;
console.log(multiply(4, 5)); // 20

🔹 With One Parameter

Agar aik he parameter ho to () laganay ki zarurat nahi.

const square = x => x * x;
console.log(square(6)); // 36

🔹 No Parameters

Agar koi parameter nahi ho to empty () likhna zaruri hai.

const hello = () => "Hi there!";
console.log(hello()); // Hi there!

3. Higher Order Functions (HOF)

Higher order functions woh hoti hain jo kisi aur function ko parameter ke tor pe leti hain ya return karti hain.

🔹 Passing a Function

map() jese functions array ke har item pe function apply karte hain.

const numbers = [1, 2, 3];
const doubled = numbers.map(n => n * 2);
console.log(doubled); // [2, 4, 6]

🔹 Returning a Function

Ek function dusra function return bhi kar sakta hai.

function greet(name) {
  return function() {
    console.log("Hello, " + name);
  };
}
const greetAli = greet("Ali");
greetAli(); // Hello, Ali