Comparison

1️⃣ عملگرهای مقایسه‌ای
در جاوااسکریپت برای مقایسه مقادیر از عملگرهای زیر استفاده می‌شود:

console.log(5 == 5); // true console.log(5 != 3); // true console.log(7 > 4); // true console.log(2 < 1); // false console.log(5 >= 5); // true console.log(3 <= 2); // false
  • == → مساوی (مقایسه بدون توجه به نوع)

  • != → نامساوی (مقایسه بدون توجه به نوع)

  • > → بزرگتر

  • < → کوچکتر

  • >= → بزرگتر یا مساوی

  • <= → کوچکتر یا مساوی

2️⃣ مقایسه سخت‌گیرانه (Strict Comparison)
برای بررسی هم مقدار و هم نوع از === و !== استفاده می‌شود:

console.log(5 == "5"); // true → فقط مقدار برابر console.log(5 === "5"); // false → مقدار برابر ولی نوع فرق دارد console.log(10 != "10"); // false console.log(10 !== "10"); // true

3️⃣ نتیجه مقایسه → Boolean
هر مقایسه خروجی true یا false برمی‌گرداند:

let age = 18; console.log(age >= 18); // true console.log(age < 18); // false

4️⃣ مقایسه رشته‌ها
رشته‌ها به صورت واحد به واحد و بر اساس Unicode مقایسه می‌شوند:

console.log("apple" < "banana"); // true console.log("Zebra" > "apple"); // false (چون حروف بزرگ < حروف کوچک)

5️⃣ مقایسه با null و undefined ⚠️

console.log(null == undefined); // true console.log(null === undefined); // false console.log(null > 0); // false console.log(null == 0); // false console.log(null >= 0); // true ❗

👉 این بخش کمی گیج‌کننده است، چون جاوااسکریپت در تبدیل نوع رفتار خاصی دارد.

6️⃣ عملگر سه‌تایی (Ternary Operator)
گاهی مقایسه را با عملگر شرطی کوتاه می‌نویسیم:

let age = 20; let result = (age >= 18) ? "مجاز ✅" : "عدم دسترسی ❌"; console.log(result); // "مجاز ✅"

نکات مهم

  • همیشه ترجیح بده از === و !== استفاده کنی تا از مشکلات تبدیل نوع جلوگیری بشه.

  • رشته‌ها بر اساس ترتیب یونیکد مقایسه می‌شن.

  • null و undefined در مقایسه‌ها استثناهایی دارند.