Operators, Conditionals ও Loops

লেসন ২৮ / ৪৪

Operators

// Arithmetic
let a = 10, b = 3;
a + b    // 13
a - b    // 7
a * b    // 30
a / b    // 3.33
a % b    // 1 (remainder)
a ** b   // 1000 (ES7)
a++      // 11
--a      // 9

// Assignment
let x = 10;
x += 5;   // x = 15
x *= 2;   // x = 30

// Comparison
5 == "5"   // true  (loose — type convert করে)
5 === "5"  // false (strict — type সহ তুলনা) ✅ সুপারিশকৃত
5 != "5"   // false
5 !== "5"  // true
5 > 3      // true

// Logical
true && false   // false (AND)
true || false   // true  (OR)
!true           // false (NOT)

// Nullish Coalescing (ES2020)
let name = null;
let display = name ?? "Guest";  // "Guest" (null/undefined হলে)

// Optional Chaining (ES2020)
let user = { };
console.log(user?.address?.city);  // undefined (error নয়)

Conditional Statements

// if / else if / else
let age = 20;
if (age >= 18) {
    console.log("প্রাপ্তবয়স্ক");
} else if (age >= 13) {
    console.log("কিশোর");
} else {
    console.log("শিশু");
}

// Ternary (এক লাইনে)
let status = age >= 18 ? "প্রাপ্তবয়স্ক" : "অপ্রাপ্তবয়স্ক";

// Switch
let day = 3;
switch (day) {
    case 1: console.log("সোমবার"); break;
    case 2: console.log("মঙ্গলবার"); break;
    case 3: console.log("বুধবার"); break;
    default: console.log("অন্যান্য");
}

Loops

// for
for (let i = 0; i < 5; i++) {
    console.log(i);  // 0, 1, 2, 3, 4
}

// while
let i = 0;
while (i < 5) {
    console.log(i);
    i++;
}

// do-while (কমপক্ষে ১ বার চলবে)
do {
    console.log(i);
    i++;
} while (i < 5);

// for...of (array, string এর value)
let fruits = ["আম", "জাম", "লিচু"];
for (let fruit of fruits) {
    console.log(fruit);
}

// for...in (object এর key)
let person = { name: "করিম", age: 25 };
for (let key in person) {
    console.log(key, ":", person[key]);
}

// Loop Control
for (let i = 0; i < 10; i++) {
    if (i === 5) break;      // লুপ থামাও
    if (i % 2 === 0) continue; // এই iteration skip
    console.log(i);
}