🧠 Boolean في جافا سكريبت: عالم القرارات البسيطة (True أم False?)

مرحباً بك في عالم المنطق الرقمي! 🎯 تخيل أنك تريد من برنامجك أن يتخذ قراراً بسيطاً: "هل المستخدم قد سجل الدخول؟"، "هل العمر أكبر من ١٨؟"، "هل الضوء مفتوح؟". كل هذه الأسئلة إجابتها ممكن أن تكون نعم أو لا، صح أو خطأ. في لغة جافا سكريبت، النوع المُخصص لتمثيل هذه الإجابات البسيطة والحيوية يسمى Boolean (تُنطق "بوليان").

في هذا الدرس، سنتعرف على هذا النوع الأساسي، وكيف نتعامل معه، وكيف يشكل حجر الأساس للتحكم في مسار برامجك المستقبلية.


📌 ما هو نوع Boolean؟

Boolean هو نوع بيانات بسيط جداً وله قيمتان فقط ولا ثالث لهما:

  1. true ➡️ وتعني "صح" أو "نعم" أو "تم".
  2. false ➡️ وتعني "خطأ" أو "لا" أو "لم يتم".

فكر فيه كمفتاح ضوء: إما مفتوح (true) أو مغلق (false). 🚦

// إنشاء متغيرات من نوع Boolean
let isLoggedIn = true;   // المستخدم سجل الدخول ✅
let isNight = false;     // الآن ليس وقت الليل ❌
let hasPermission = true; // لديه صلاحية ✅

console.log(isLoggedIn); // ستطبع: true
console.log(isNight);    // ستطبع: false

🔍 كيف نحصل على قيم Boolean؟ (المقارنات)

نادراً ما نكتب true أو false مباشرةً. في الغالب، نحصل على هذه القيمة كنتيجة لمقارنة بين شيئين. جافا سكريبت لديها عوامل مقارنة تفحص العلاقة بين قيمتين وترجع boolean.

عوامل المقارنة الأساسية:

  • == يساوي في القيمة (يسأل: هل القيمتان متساويتان؟)
  • === يساوي في القيمة والنوع (يسأل: هل هما متطابقتان تماماً؟ - هذا هو الأفضل استخداماً)
  • != لا يساوي في القيمة
  • !== لا يساوي في القيمة والنوع
  • > أكبر من
  • < أصغر من
  • >= أكبر من أو يساوي
  • <= أصغر من أو يساوي
// أمثلة على المقارنات التي ترجع Boolean
let age = 20;
let price = 100;

console.log(age >= 18); // true (20 أكبر من أو تساوي 18) ✅
console.log(price === 100); // true (السعر يساوي 100 تماماً) ✅
console.log(price < 50); // false (100 ليست أصغر من 50) ❌

let name1 = "أحمد";
let name2 = "محمد";
console.log(name1 === name2); // false (الاسمان مختلفان) ❌

⚡ العوامل المنطقية (Logical Operators)

ماذا لو أردنا دمج أكثر من شرط منطقي واحد؟ هنا تأتي العوامل المنطقية! 🧩 هي تعمل مع قيم Boolean وترجع قيمة Boolean جديدة.

العاملان الأساسيان هما:

  1. && (AND - و): يكون الناتج true فقط إذا كان كلا الطرفين true.

    true && true يعطي true. أي شرط خاطئ يجعل النتيجة false.

  2. || (OR - أو): يكون الناتج true إذا كان أحد الطرفين على الأقل true.

    false || true يعطي true. فقط إذا كانا كلاهما false تكون النتيجة false.

// تخيل شروط دخول إلى لعبة
let hasTicket = true;
let isAdult = true;
let hasCoupon = false;

// يمكنك الدخول إذا كان لديك تذكرة AND أنك بالغ
let canEnter = hasTicket && isAdult;
console.log(canEnter); // true && true = true ✅

// يمكنك الحصول على خصم إذا كان لديك تذكرة OR لديك كوبون
let getsDiscount = hasTicket || hasCoupon;
console.log(getsDiscount); // true || false = true ✅

// ماذا لو لم تكن بالغاً؟
isAdult = false;
canEnter = hasTicket && isAdult;
console.log(canEnter); // true && false = false ❌

💡 لماذا Boolean مهم جداً؟

القيمة Boolean هي الوقود الذي يشغل عبارات التحكم مثل if التي سنتعلمها قريباً. البرنامج ينظر إلى هذه القيمة (true أم false) ليقرر أي مجموعة من الأوامر سينفذ.

// (لمعرفة فقط) هذا مثال بسيط عما سيأتي لاحقاً
let isRaining = true;

if (isRaining === true) { // إذا كانت قيمة isRaining تساوي true
    console.log("خذ المظلة معك! ☔"); // سينفذ هذا السطر
}
// سيكون مخرجه: "خذ المظلة معك! ☔"

🧪 خلاصة Boolean في جافا سكريبت

  • Boolean نوع بيانات له قيمتان فقط: true أو false.
  • نحصل على قيم Boolean غالباً من عمليات المقارنة (===, >, <, ...).
  • يمكننا دمج الشروط المنطقية باستخدام العوامل && (و) و || (أو).
  • هذا النوع هو قلب عملية اتخاذ القرار في البرمجة.