📘 JavaScript Basics & Conditions

1. var, let, const

Yeh teen different tareeqay hain JavaScript mein variable bananay ke. Har ek ka apna scope aur rules hota hai.

🔹 var

var function scoped hota hai. Isay dobara declare aur reassign kiya ja sakta hai (lekin avoid karna chahiye).

var x = 10;
x = 20;
var x = 30; // ✅ Re-declaration allowed

🔹 let

let block scoped hota hai. Isay dobara assign kiya ja sakta hai, lekin dobara declare nahi kar saktay same block mein.

let y = 5;
y = 15; // ✅
let y = 25; // ❌ Error

🔹 const

const bhi block scoped hota hai. Isay na to reassign kar saktay hain, na dobara declare.

const z = 100;
z = 200; // ❌ Error

2. Hoisting

var declarations top par chali jati hain (hoist hoti hain), jabke let aur const Temporal Dead Zone mein hoti hain.

🔹 var Hoisting

var declare honay se pehle undefined show hota hai:

console.log(a); // undefined
var a = 10;

🔹 let/const Hoisting

let ya const use karne se pehle error throw hota hai:

console.log(b); // ❌ ReferenceError
let b = 20;

3. if / else Conditions

Agar koi condition true hai to kuch karo, warna else block chalay ga.

🔹 Example

Check karo number positive hai ya nahi:

const num = -3;
if(num > 0){
  console.log("Positive");
} else {
  console.log("Not positive");
}

4. Ternary Operator

Short form hai if/else condition ka — aik line mein likh saktay hain.

🔹 Example

Age check kar ke message assign karo:

const age = 18;
const msg = age >= 18 ? "Adult" : "Minor";

5. Logical Operators

&& dono conditions true hoon to true return karta hai. || mein agar ek bhi true ho to true return hota hai.

🔹 Example

Multiple conditions combine karke check karna:

if(isLoggedIn && isAdmin){
  console.log("Welcome Admin");
}

if(age > 18 || hasPermission){
  console.log("Access Granted");
}

6. Optional Chaining

Kisi object ke nested property ko safely access karne ke liye ?. use karte hain — agar undefined ho to crash nahi hota.

🔹 Example

Agar user ka kuch data missing ho to bhi app crash nahi karegi:

const user = { profile: { name: "Ali" } };
console.log(user.profile?.name); // Ali
console.log(user.settings?.theme); // undefined (✅ No crash)