12 KiB
أساسيات JavaScript: اتخاذ القرارات
رسم توضيحي من Tomomi Imura
اختبار ما قبل المحاضرة
اتخاذ القرارات والتحكم في ترتيب تشغيل الكود يجعل الكود الخاص بك قابلاً لإعادة الاستخدام وقويًا. يغطي هذا القسم صياغة التحكم في تدفق البيانات في JavaScript وأهميته عند استخدامه مع أنواع البيانات البوليانية.
🎥 انقر على الصورة أعلاه لمشاهدة فيديو حول اتخاذ القرارات.
يمكنك أخذ هذا الدرس على Microsoft Learn!
لمحة سريعة عن البوليانات
البوليانات يمكن أن تحتوي فقط على قيمتين: true
أو false
. تساعد البوليانات في اتخاذ القرارات حول أي سطور من الكود يجب أن تُنفذ عند تحقق شروط معينة.
قم بتعيين قيمة البوليان إلى true أو false كالتالي:
let myTrueBool = true
let myFalseBool = false
✅ سميت البوليانات على اسم عالم الرياضيات والفيلسوف والمنطقي الإنجليزي جورج بول (1815–1864).
عوامل المقارنة والبوليانات
تُستخدم العوامل لتقييم الشروط من خلال إجراء مقارنات تُنتج قيمة بوليانية. فيما يلي قائمة بالعوامل التي تُستخدم بشكل متكرر.
الرمز | الوصف | المثال |
---|---|---|
< |
أقل من: يقارن بين قيمتين ويعيد قيمة بوليانية true إذا كانت القيمة على الجانب الأيسر أقل من القيمة على الجانب الأيمن |
5 < 6 // true |
<= |
أقل من أو يساوي: يقارن بين قيمتين ويعيد قيمة بوليانية true إذا كانت القيمة على الجانب الأيسر أقل من أو تساوي القيمة على الجانب الأيمن |
5 <= 6 // true |
> |
أكبر من: يقارن بين قيمتين ويعيد قيمة بوليانية true إذا كانت القيمة على الجانب الأيسر أكبر من القيمة على الجانب الأيمن |
5 > 6 // false |
>= |
أكبر من أو يساوي: يقارن بين قيمتين ويعيد قيمة بوليانية true إذا كانت القيمة على الجانب الأيسر أكبر من أو تساوي القيمة على الجانب الأيمن |
5 >= 6 // false |
=== |
المساواة الصارمة: يقارن بين قيمتين ويعيد قيمة بوليانية true إذا كانت القيم على الجانبين الأيمن والأيسر متساوية وتملك نفس نوع البيانات |
5 === 6 // false |
!== |
عدم المساواة: يقارن بين قيمتين ويعيد القيمة البوليانية المعاكسة لما يعيده عامل المساواة الصارمة | 5 !== 6 // true |
✅ تحقق من معرفتك بكتابة بعض المقارنات في وحدة التحكم في المتصفح. هل تفاجأت بأي بيانات مُعادة؟
جملة If
جملة if ستنفذ الكود الموجود بين الأقواس إذا كان الشرط صحيحًا.
if (condition) {
//Condition is true. Code in this block will run.
}
تُستخدم العوامل المنطقية غالبًا لتكوين الشرط.
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
}
جملة If..Else
جملة else
ستنفذ الكود الموجود بين الأقواس عندما يكون الشرط خاطئًا. وهي اختيارية مع جملة if
.
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is false. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
✅ اختبر فهمك لهذا الكود والكود التالي عن طريق تشغيله في وحدة التحكم في المتصفح. قم بتغيير قيم المتغيرين currentMoney و laptopPrice لتغيير ما يعيده console.log()
.
جملة Switch
تُستخدم جملة switch
لتنفيذ إجراءات مختلفة بناءً على شروط مختلفة. استخدم جملة switch
لاختيار أحد العديد من الكتل البرمجية لتنفيذها.
switch (expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
// program using switch statement
let a = 2;
switch (a) {
case 1:
a = "one";
break;
case 2:
a = "two";
break;
default:
a = "not found";
break;
}
console.log(`The value is ${a}`);
✅ اختبر فهمك لهذا الكود والكود التالي عن طريق تشغيله في وحدة التحكم في المتصفح. قم بتغيير قيم المتغير a لتغيير ما يعيده console.log()
.
العوامل المنطقية والبوليانات
قد تتطلب القرارات أكثر من مقارنة واحدة، ويمكن ربطها معًا باستخدام العوامل المنطقية لإنتاج قيمة بوليانية.
الرمز | الوصف | المثال |
---|---|---|
&& |
AND المنطقية: تقارن بين تعبيرين بوليانيين. تعيد true فقط إذا كان كلا الجانبين صحيحًا | (5 > 6) && (5 < 6 ) // أحد الجانبين خاطئ، والآخر صحيح. تعيد false |
|| |
OR المنطقية: تقارن بين تعبيرين بوليانيين. تعيد true إذا كان على الأقل أحد الجانبين صحيحًا | (5 > 6) || (5 < 6) // أحد الجانبين خاطئ، والآخر صحيح. تعيد true |
! |
NOT المنطقية: تعيد القيمة المعاكسة لتعبير بولياني | !(5 > 6) // 5 ليس أكبر من 6، ولكن "!" ستعيد true |
الشروط والقرارات باستخدام العوامل المنطقية
يمكن استخدام العوامل المنطقية لتكوين شروط في جمل if..else.
let currentMoney;
let laptopPrice;
let laptopDiscountPrice = laptopPrice - laptopPrice * 0.2; //Laptop price at 20 percent off
if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is true. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
عامل النفي
لقد رأيت حتى الآن كيف يمكنك استخدام جملة if...else
لإنشاء منطق شرطي. أي شيء يدخل في جملة if
يجب أن يُقيّم إلى true/false. باستخدام العامل !
يمكنك نفي التعبير. سيبدو كالتالي:
if (!condition) {
// runs if condition is false
} else {
// runs if condition is true
}
التعبيرات الثلاثية
if...else
ليست الطريقة الوحيدة للتعبير عن منطق اتخاذ القرار. يمكنك أيضًا استخدام ما يسمى بالعامل الثلاثي. يبدو بناء الجملة الخاص به كالتالي:
let variable = condition ? <return this if true> : <return this if false>
فيما يلي مثال أكثر وضوحًا:
let firstNumber = 20;
let secondNumber = 10;
let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;
✅ خذ دقيقة لقراءة هذا الكود عدة مرات. هل تفهم كيف تعمل هذه العوامل؟
ما سبق ينص على:
- إذا كانت
firstNumber
أكبر منsecondNumber
- قم بتعيين
firstNumber
إلىbiggestNumber
- وإلا قم بتعيين
secondNumber
.
التعبير الثلاثي هو مجرد طريقة مختصرة لكتابة الكود أدناه:
let biggestNumber;
if (firstNumber > secondNumber) {
biggestNumber = firstNumber;
} else {
biggestNumber = secondNumber;
}
🚀 التحدي
قم بإنشاء برنامج مكتوب أولاً باستخدام العوامل المنطقية، ثم أعد كتابته باستخدام تعبير ثلاثي. ما هي الصياغة التي تفضلها؟
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
اقرأ المزيد عن العديد من العوامل المتاحة للمستخدم على MDN.
اطلع على أداة البحث الرائعة عن العوامل من Josh Comeau operator lookup!
الواجب
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.