আগের পর্বে আমরা Variable ও Data Type শিখেছি। আজকে শিখবো Operator — এগুলো দিয়ে আমরা মান নিয়ে হিসাব করি, তুলনা করি, এবং একাধিক শর্ত একসাথে মেলাই। পরের পর্বে (Condition) এই Operator গুলোই কাজে লাগবে।
Arithmetic Operator — গাণিতিক হিসাব
console.log(5 + 3); // 8 যোগ console.log(5 - 3); // 2 বিয়োগ console.log(5 * 3); // 15 গুণ console.log(5 / 3); // 1.666... ভাগ console.log(5 % 3); // 2 ভাগশেষ (modulus) console.log(5 ** 2); // 25 power (৫ এর বর্গ)
% (modulus) একটু নতুন লাগতে পারে — এটা ভাগ করার পর যা অবশিষ্ট থাকে সেটা দেয়। এটা খুব কাজে লাগে, যেমন কোনো সংখ্যা জোড় না বিজোড় চেক করতে (num % 2 === 0 হলে জোড়)।
Assignment Operator — মান বসানো
let score = 10; score += 5; // score = score + 5 → 15 score -= 3; // score = score - 3 → 12 score *= 2; // score = score * 2 → 24 score /= 4; // score = score / 4 → 6
এই শর্টহ্যান্ডগুলো খুব কমন — বিশেষ করে += কাউন্টার বা স্কোর বাড়ানোর সময় প্রায় সবসময় ব্যবহার হয়।
Comparison Operator — তুলনা করা
দুইটা মান তুলনা করে true বা false রিটার্ন করে:
| Operator | কাজ |
|---|---|
== |
মান সমান কিনা (type চেক করে না) |
=== |
মান ও type দুটোই সমান কিনা |
!= / !== |
সমান না কিনা (loose / strict) |
> / < |
বড় / ছোট |
>= / <= |
বড় বা সমান / ছোট বা সমান |
== vs === — এই পার্থক্যটা জরুরি
এটা JavaScript-এর সবচেয়ে কমন একটা confusion পয়েন্ট, তাই একটু বিস্তারিত দেখি:
console.log(5 == "5"); // true — শুধু মান দেখে, type ইগনোর করে console.log(5 === "5"); // false — মান একই কিন্তু type ভিন্ন (number vs string) console.log(5 == 5); // true console.log(5 === 5); // true — মান ও type দুটোই মিলে গেছে
এখানে 5 একটা number, আর "5" একটা string। == এদের সমান ধরে নেয় কারণ এটা শুধু মান দেখে, type ইগনোর করে। কিন্তু === type-ও চেক করে, তাই এদের ভিন্ন ধরে।
টিপস: প্রায় সবসময় === (triple equals) ব্যবহার করা উচিত, == না। ==-এর অপ্রত্যাশিত আচরণ (যেমন type জোর করে মিলিয়ে দেওয়া) অনেক bug-এর কারণ হয়। এটা professional JavaScript coding-এর একটা basic নিয়ম।
Logical Operator — একাধিক শর্ত মেলানো
| Operator | নাম | কাজ |
|---|---|---|
&& |
AND | দুইটাই true হলে true |
|| |
OR | যেকোনো একটা true হলেই true |
! |
NOT | উল্টো করে দেয় (true হলে false) |
let age = 20; let hasID = true; console.log(age >= 18 && hasID); // true — দুইটাই সত্যি console.log(age < 18 || hasID); // true — অন্তত একটা সত্যি console.log(!hasID); // false — hasID এর উল্টো
একটা বাস্তব উদাহরণ — "ভোট দেওয়ার যোগ্যতা" চেক করা: বয়স ১৮ বা তার বেশি এবং ভোটার আইডি থাকতে হবে:
let canVote = age >= 18 && hasID; console.log(canVote); // true
Increment ও Decrement
একটা number-কে ১ বাড়ানো/কমানোর জন্য শর্টহ্যান্ড আছে — কাউন্টার বা loop-এ এটা খুব বেশি ব্যবহার হয় (পরের পর্বে Loop-এ দেখবো):
let count = 5; count++; // count = count + 1 → 6 count--; // count = count - 1 → 5
একটা সম্পূর্ণ উদাহরণ
<!DOCTYPE html>
<html lang="bn">
<head>
<meta charset="UTF-8">
<title>Operator উদাহরণ</title>
</head>
<body>
<script>
let price = 500;
let quantity = 3;
let total = price * quantity;
console.log(`মোট দাম: ${total} টাকা`);
let hasDiscount = total > 1000;
console.log(`ডিসকাউন্ট পাবে: ${hasDiscount}`);
let age = 22;
let hasID = true;
let canVote = age >= 18 && hasID;
console.log(`ভোট দিতে পারবে: ${canVote}`);
</script>
</body>
</html>
নিজে চেষ্টা করো
Exercise:
- দুইটা number variable বানাও, তাদের যোগ, বিয়োগ, গুণ, ভাগ console-এ প্রিন্ট করো
%ব্যবহার করে একটা সংখ্যা জোড় না বিজোড় চেক করো5 == "5"ও5 === "5"— দুটো লিখে ফলাফলের পার্থক্য দেখো&&ব্যবহার করে দুইটা শর্ত একসাথে চেক করো (যেমন বয়স ও একটা boolean)
পরের পর্বে যা থাকছে
পর্ব ৪-এ আমরা শিখবো Condition — if/else ও switch statement দিয়ে কীভাবে শর্ত অনুযায়ী কোড চালানো যায়, উদাহরণসহ।