---
title: Boolean
localeTitle: منطقية
---
## منطقية

Booleans هي نوع بيانات بدائي شائع الاستخدام في لغات برمجة الكمبيوتر. بحكم التعريف ، يحتوي المنطقي على قيمتين محتملتين: `true` أو `false` .

في Javascript ، غالبًا ما يكون هناك نوع الإكراه الضمني للقيمة المنطقية. إذا كان لديك مثلاً عبارة if تتحقق من تعبير معين ، فسيتم فرض هذا التعبير على قيمة منطقية:

 `var a = 'a string'; 
 if (a) { 
  console.log(a); // logs 'a string' 
 } 
` 

هناك بعض القيم القليلة التي سيتم فرضها على false:

*   كاذبة (غير مجبرة حقًا لأنها خاطئة بالفعل)
*   لا شيء
*   غير محدد
*   نان
*   0
*   '' (سلسلة فارغة)

سيتم فرض جميع القيم الأخرى إلى true. عندما تُكرَه القيمة إلى قيمة منطقية ، فإننا نطلق عليها أيضًا إما "كاذبة" أو "صادقة".

إحدى الطرق التي يتم بها استخدام نوع الإكراه هي استخدام مشغلي (أو `||` ) و ( `&&` ):

 `var a = 'word'; 
 var b = false; 
 var c = true; 
 var d = 0 
 var e = 1 
 var f = 2 
 var g = null 
 
 console.log(a || b); // 'word' 
 console.log(c || a); // true 
 console.log(b || a); // 'word' 
 console.log(e || f); // 1 
 console.log(f || e); // 2 
 console.log(d || g); // null 
 console.log(g || d); // 0 
 console.log(a && c); // true 
 console.log(c && a); // 'word' 
` 

كما ترى ، يفحص المشغل _أو_ العامل الأول. إذا كان هذا صحيحًا أو صريحًا ، فسيتم إرجاعه على الفور (وهذا هو سبب حصولنا على كلمة في الحالة الأولى وصحيح في الحالة الثانية). إذا لم يكن صحيحا أو صائبا ، فإنه يعيد المعامل الثاني (وهذا هو السبب في أننا نحصل على كلمة في الحالة الثالثة).

مع المشغل ويعمل بطريقة مماثلة ، ولكن "و" ليكون صحيحا ، يجب أن يكون كلا المعاملين صائبين. لذلك ، ستعود دائمًا إلى المعامل الثاني إذا كان كلاهما صحيحًا / صريحًا ، وإلا فسيظهر خطأ. وهذا هو السبب في أننا في الحالة الرابعة أصبحنا صادقين وفي الحالة الأخيرة حصلنا على "كلمة".

## الكائن المنطقي

يوجد أيضًا كائن JavaScript أصلي يلتف حول قيمة. القيمة التي تم تمريرها عند تحويل المعلمة الأولى إلى قيمة منطقية ، إذا لزم الأمر. إذا تم حذف القيمة ، 0 ، أو 0 ، أو خالية ، أو false ، أو NaN ، أو undefined ، أو السلسلة الفارغة ("") ، فإن الكائن له قيمة أولية خاطئة. جميع القيم الأخرى ، بما في ذلك أي كائن أو السلسلة "false" ، تقوم بإنشاء كائن بقيمة أولية صحيحة.

لا تخلط بين القيم المنطقية البدائية الصواب والخطأ مع القيم الحقيقية والخطئة للكائن المنطقي.

## المزيد من التفاصيل

يتم تقييم أي كائن لا تكون قيمته غير محددة أو خالية ، بما في ذلك كائن منطقي قيمته غير صحيح ، إلى true عند تمريره إلى بيان شرطي. إذا كان هذا صحيحًا ، فسيؤدي هذا إلى تنفيذ الوظيفة. على سبيل المثال ، يتم تقييم الشرط الموجود في العبارة if في الحالة التالية:

 `var x = new Boolean(false); 
 if (x) { 
  // this code is executed 
 } 
` 

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

 `var x = false; 
 if (x) { 
  // this code is not executed 
 } 
` 

لا تستخدم كائنًا منطقيًا لتحويل قيمة غير منطقية إلى قيمة منطقية. بدلاً من ذلك ، استخدم Boolean كدالة لتنفيذ هذه المهمة:

 `var x = Boolean(expression);     // preferred 
 var x = new Boolean(expression); // don't use 
` 

إذا قمت بتحديد أي كائن ، بما في ذلك كائن منطقي قيمته غير كاذبة ، كالقيمة الأولية لكائن Boolean ، فإن الكائن المنطقي الجديد يحتوي على قيمة true.

 `var myFalse = new Boolean(false);   // initial value of false 
 var g = new Boolean(myFalse);       // initial value of true 
 var myString = new String('Hello'); // string object 
 var s = new Boolean(myString);      // initial value of true 
` 

لا تستخدم كائن منطقي بدلاً من بدائي منطقي.

### مصادر

*   [كائن بولياني](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
*   [كائن بولياني](https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html)