التعبيرات المنطقية (Logical)
التعبيرات المنطقية (Logical Expressions)
التعبيرات المنطقية هي نوع من التعبيرات مختص بالقيمة المنطقية (Boolean) وهي true
و false
وبالتالي هذا النوع من التعبيرات يكون ناتج تشغيله قيمة منطقية أيضاً؛ فإما true
أو false
العلامات المنطقية
العلامة | معناها | مثال على العلامة | المثال يساوي |
---|---|---|---|
|| | أو (Or) | true || false | true |
&& | و (And) | true && false | false |
! | ليس (not) | !true | false |
||
التعبير أو (Or) التعبير "أو" علامته ||
مثل: x == 5 || x == 6
فعندما يمر المفسر على التعبير السابق يعتبر أن ناتجه يساوي:
true
: إن كان الطرف اﻷول يساويtrue
أو الطرف التاني يساويtrue
false
: إذا كان الطرفان كلاهما يساويfalse
يمكن كتابة العلامة
|
عن طريق الضغط على Shift ثم الضغط على مفتاح يتواجد أعلى زر Enter أو يساره حسب لوحة المفاتيح
كيف يعمل المفسر؟
يمر المفسر على التعبير المنطقي (أو)، فيتحقق أولاً من الطرف اﻷول.. هل true
أم false
، فإن كان true
يكون ناتج التعبير true
أما إن كان false
يقوم بالتحقق من الطرف الثاني، فإذا كان true
يكون ناتج التعبير true
غير ذلك يكون الطرفين false
بالتالي يكون ناتج التعبير false
مثال التحقق من أن أحد المتغيرين يساوي 5
var x = 5,
y = 4;
console.log(x == 5 || y == 5);
var x = 3,
y = 4;
console.log(x == 5 || y == 5);
إذا كان: (x يساوي 5 أو y يساوي 5) فإن ناتج التعبير المنطقي يساوي true
مثال التحقق من العمر
تخيل أن لدينا متغير age
قيمته تساوي عُمر المُستخدم، ونريد أن نسمح فقط باﻷطفال (تحت 10 سنوات) أو كبار السن (فوق 40 سنة)، كيف يمكننا تنفيذها ؟
كنا سابقاً نستخدم الشروط المتعددة بهذا الشكل:
var age = 20;
if (age < 10){
console.log("مسموح");
}else{
if (age > 40){
console.log("مسموح");
}else{
console.log("غير مسموح");
}
}
ولكن اﻵن مع التعبيرات المنطقية باستخدام التعبير (أو) يمكننا تنفيذها بهذه الطريقة:
var age = 20;
if (age < 10 || age > 40){
console.log("مسموح");
}else{
console.log("غير مسموح");
}
نتحقق أولاً هل العمر أقل من 10 أو أكبر من 40 ؟ إذن نطبع مسموح، غير ذلك نطبع غير مسموح!
جدول نواتج التعبير (أو)
التعبير | ناتج تفسير التعبير |
---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
&&
التعبير و (And) التعبير "و" علامته &&
مثل: x >= 10 && x <= 20
فعندما يمر المفسر على التعبير السابق يعتبر أن ناتجه يساوي:
true
: إن كان الطرف اﻷول يساويtrue
و الطرف التاني يساويtrue
أيضاً.false
: إذا كان واحد من الطرفين يساويfalse
أو كلاهما يساويfalse
يمكن كتابة العلامة
&
عن طريق الضغط على Shift ثم الضغط على مفتاح العدد 7 أعلى لوحة المفاتيح
مثال التحقق من العمر
لدينا متغير age
قيمته تساوي عُمر المُستخدم، ونريد أن نسمح فقط بالشباب (أكبر من 15 سنة وأقل من 40 سنة)، كيف يمكننا تنفيذها ؟
هنا التعبير المنطقي يكون "و" ﻷننا نريد أن نسمح بمن هم أكبر من 15 و أقل من 40 لذلك سنستخدم العلامة &&
كنا سابقاً نستخدم الشروط المتعددة بهذا الشكل:
var age = 20;
if (age > 15 && age < 40){
console.log("مسموح");
}else{
console.log("غير مسموح");
}
كيف يعمل المفسر؟
يمر المفسر على التعبير المنطقي (و)، فيتحقق أولاً من الطرف اﻷول.. فإذا كان false
لا يكمل المفسر ويعتبر أن ناتج التعبير كله يساوي false
أما إن كان true
فيتحقق من الطرف الثاني، إن كان الطرف الثاني true
أيضاً، يعتبر المفسر ناتج التعبير true
غير ذلك يعتبره false
&&
جدول نواتج التعبير (و) التعبير | ناتج تفسير التعبير |
---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
!
التعبير ليس (not) التعبير (ليس) من أهم التعبيرات المنطقية، ويُستخدم لعكس القيمة المنطقية، لاحظ الجدول:
!
جدول نواتج التعبير (ليس) التعبير | ناتج تفسير التعبير |
---|---|
!true | false |
!false | true |
مثال الوضع الغير ليلي
تخيل أن لدينا متغير dark
قيمته منطقية، true
إن كان الوضع الليلي مفعل، وfalse
إن كان غير مفعل... ونريد أن نضع شرط يتحقق إن كان الوضع الليلي غير مفعل يعني إن كان يساوي false
.. يمكننا كتابة dark == false
لكننا لا نفضل هذا التعبير، بل نفضل اﻹختصار: !dark
var dark = false;
if (!dark){
console.log("الوضع الليلي غير مفعل");
}
ويمكن استخدامه مع تعبيرات المقارنة والتعبيرات المنطقية اﻷخرى باستخدام اﻷقواس:
التعبير | ناتج تفسير التعبير |
---|---|
!(5 > 6) | true |
!(5 == 5) | false |
!(true && true) | false |
يمكن استخدام التعبيرات المنطقية كأي تعبير من التعبيرات التي درسناها سابقاً، فمثلاً يمكن أن يكون التعبير مُدخل لدالة console.log(true || true)
وممكن أن يكون قيمة لمتغير var result = true || true
وهكذا
المساهمين
وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github