طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 131 · تقنيات تطوير الواجهات الأمامية
الدرس 23 · الوحدة 7: التعرف على JavaScript

الشروط والحلقات والدوال

ما تعرفه من بايثون تكتبه الآن بلغة المتصفح. ⏱ نحو 25 دقيقة.

PythonJavaScriptif x > 5: print(x)else: print(0)if (x > 5) { console.log(x);} else { console.log(0);}
بعد هذا الدرس ستستطيع أن:
  • تكتب الشروط بـ if و else if و else.
  • تستخدم === و && و || في المقارنات.
  • تكتب حلقتي for و while.
  • تكتب دالة تُرجع قيمة، وتتعرف على الدالة السهمية.

١الفكرة نفسها، كتابة مختلفة

تعرف من مقرر 111 الشروط والحلقات والدوال. في JavaScript الأفكار هي نفسها، والفرق في الكتابة:

بايثونJavaScript
الكتلةنقطتان ومسافة بادئةأقواس معقوفة { }
الشرطif x > 5:if (x > 5) {
وإلا إذاelifelse if
و / أو / ليسand or not&& || !
يساوي===== (ثلاث علامات)
الدالةdef area(w, h):function area(w, h) {

٢الشروط

const mark = 78; if (mark >= 90) {  console.log("ممتاز");} else if (mark >= 75) {  console.log("جيد جدًّا");} else if (mark >= 60) {  console.log("ناجح");} else {  console.log("راسب");} const age = 20;const hasId = true;if (age >= 18 && hasId) {  console.log("يُسمح بالدخول");}
Console×
جيد جدًّا
يُسمح بالدخول

الشرط بين قوسين دائريين ( )، والأوامر بين قوسين معقوفين { }. المسافة البادئة ليست إجبارية هنا، لكنها ضرورية لتقرأ كودك.

٣الحلقات

// for: عدّاد من 1 إلى 5for (let i = 1; i <= 5; i++) {  console.log("الحلقة رقم", i);} // while: ما دام الشرط صحيحًاlet money = 100;while (money > 30) {  money = money - 30;}console.log("بقي", money);
Console×
الحلقة رقم 1
الحلقة رقم 2
الحلقة رقم 3
الحلقة رقم 4
الحلقة رقم 5
بقي 10

حلقة for لها ثلاثة أجزاء بين القوسين مفصولة بفاصلة منقوطة:

الجزءالمثالمعناه
البدايةlet i = 1تُنفّذ مرة واحدة.
الشرطi <= 5يُفحص قبل كل دورة.
الخطوةi++بعد كل دورة: زد i بواحد (مثل i += 1).

٤الدوال

function area(width, height) {  return width * height;} console.log(area(4, 5));console.log(area(10, 2)); // دالة سهمية: كتابة مختصرة للدالة نفسهاconst square = (n) => n * n;console.log(square(6));
Console×
20
20
36

function مثل def، و return كما هي. والدالة السهمية => اختصار شائع جدًّا ستراه في الأكواد الحديثة وفي React لاحقًا.

٥الدالة مع الصفحة

الدوال هي ما يربط JavaScript بالصفحة: سنكتب دالة تُنفّذ عند الضغط على زر في الوحدة القادمة. هذا مثال صغير لما سيأتي:

<button onclick="greet()">اضغطني</button>
index.html
Console

توقّع وتحقّق

ما المقابل لـ elif في JavaScript؟

كلمتان: else if.

ما المقابل لـ and؟

&& تعني «و».

ما ناتج "5" === 5؟

النوع مختلف.

كم مرة تتكرر for (let i = 0; i < 3; i++)؟

i = 0 و 1 و 2.

الخلاصة

تحدٍّ برمجي: جدول الضرب والتقدير

متوسط

اكتب دالة grade(mark) تُرجع التقدير: «ممتاز» من 90، و«جيد» من 75، و«مقبول» من 60، وإلا «راسب». ثم استخدم حلقة for لطباعة تقدير الدرجات 95 و 80 و 65 و 40.

المطلوب:
  • دالة اسمها grade تأخذ الدرجة وتُرجع (return) التقدير.
  • حلقة for تمر على الدرجات الأربع.
  • يطبع كل سطر بالشكل: 95: ممتاز
👀 اعرض شكل الناتج المطلوب
المطلوب×
95: ممتاز
80: جيد
65: مقبول
40: راسب
✓ التحقق الآلي من حلّك:
  • grade(92) تُرجع «ممتاز».
  • grade(75) تُرجع «جيد» و grade(60) تُرجع «مقبول».
  • grade(59) تُرجع «راسب».
  • يطبع الأسطر الأربعة بالشكل المطلوب.

💡 تلميح 1
مثل بايثون: الشرط الأعلى أولًا (90 ثم 75 ثم 60).
💡 تلميح 2
console.log(`${marks[i]}: ${grade(marks[i])}`);

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

function grade(mark) {  if (mark >= 90) {    return "ممتاز";  } else if (mark >= 75) {    return "جيد";  } else if (mark >= 60) {    return "مقبول";  } else {    return "راسب";  }} const marks = [95, 80, 65, 40];for (let i = 0; i < marks.length; i++) {  console.log(`${marks[i]}: ${grade(marks[i])}`);}
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس