--- 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)