جافا سكريبت للحلقة
يمكن أن تنفذ الحلقات كتلة من التعليمات البرمجية عدة مرات.
حلقات جافا سكريبت
الحلقات سهلة الاستخدام ، إذا كنت تريد تشغيل نفس الرمز مرارًا وتكرارًا ، في كل مرة بقيمة مختلفة.
غالبًا ما يكون هذا هو الحال عند العمل مع المصفوفات:
بدلا من الكتابة:
text += cars[0] + "<br>";
text += cars[1] + "<br>";
text += cars[2] + "<br>";
text += cars[3] + "<br>";
text += cars[4] + "<br>";
text += cars[5] + "<br>";
يمكنك كتابة:
for (let i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
أنواع مختلفة من الحلقات
يدعم JavaScript أنواعًا مختلفة من الحلقات:
for
- حلقات من خلال كتلة من التعليمات البرمجية عدة مراتfor/in
- حلقات من خلال خصائص الكائنfor/of
- حلقات عبر قيم كائن قابل للتكرارwhile
- حلقات من خلال كتلة من التعليمات البرمجية عندما يكون الشرط المحدد صحيحًاdo/while
- يتكرر أيضًا عبر كتلة من التعليمات البرمجية بينما يكون الشرط المحدد صحيحًا
حلقة For
الحلقة for
لها الصيغة التالية:
for (statement 1; statement 2; statement 3) {
// code block to be executed
}
يتم تنفيذ العبارة 1 (مرة واحدة) قبل تنفيذ كتلة التعليمات البرمجية.
تحدد العبارة 2 شرط تنفيذ مقطع التعليمات البرمجية.
يتم تنفيذ العبارة 3 (في كل مرة) بعد تنفيذ كتلة التعليمات البرمجية.
مثال
for (let i = 0; i < 5; i++) {
text += "The number is " + i + "<br>";
}
من المثال أعلاه ، يمكنك قراءة:
تعين العبارة 1 متغيرًا قبل أن تبدأ الحلقة (دع i = 0).
تحدد العبارة 2 شرط تشغيل الحلقة (يجب أن يكون i أقل من 5).
تزيد العبارة 3 قيمة (i ++) في كل مرة يتم فيها تنفيذ كتلة التعليمات البرمجية في الحلقة.
البيان 1
عادة ستستخدم العبارة 1 لتهيئة المتغير المستخدم في الحلقة (دع i = 0).
ليس هذا هو الحال دائمًا ، فإن JavaScript لا يهتم. العبارة 1 اختيارية.
يمكنك بدء العديد من القيم في العبارة 1 (مفصولة بفاصلة):
مثال
for (let i = 0, len = cars.length, text = ""; i < len; i++) {
text += cars[i] + "<br>";
}
ويمكنك حذف العبارة 1 (على سبيل المثال ، عندما يتم تعيين القيم قبل بدء الحلقة):
مثال
let i = 2;
let len = cars.length;
let text = "";
for (; i < len; i++) {
text += cars[i] + "<br>";
}
البيان 2
غالبًا ما يتم استخدام العبارة 2 لتقييم حالة المتغير الأولي.
ليس هذا هو الحال دائمًا ، فإن JavaScript لا يهتم. العبارة 2 اختيارية أيضًا.
إذا عادت العبارة 2 بشكل صحيح ، فستبدأ الحلقة من جديد ، وإذا أعادت القيمة false ، فستنتهي الحلقة.
إذا حذفت العبارة 2 ، فيجب عليك توفير فاصل داخل الحلقة. وإلا فإن الحلقة لن تنتهي أبدا. هذا سوف يحطم متصفحك. اقرأ عن الفواصل في فصل لاحق من هذا البرنامج التعليمي.
البيان 3
غالبًا ما تزيد العبارة 3 من قيمة المتغير الأولي.
هذا ليس هو الحال دائمًا ، جافا سكريبت لا تهتم ، والبيان 3 اختياري.
يمكن أن تفعل العبارة 3 أي شيء مثل الزيادة السالبة (i--) أو الزيادة الإيجابية (i = i + 15) أو أي شيء آخر.
يمكن أيضًا حذف العبارة 3 (مثل عندما تزيد قيمك داخل الحلقة):
مثال
let i = 0;
let len = cars.length;
let text = "";
for (; i < len; ) {
text += cars[i] + "<br>";
i++;
}
نطاق الحلقة
باستخدام var
في حلقة:
مثال
var i = 5;
for (var i = 0; i < 10; i++) {
// some code
}
// Here i is 10
باستخدام let
في حلقة:
مثال
let i = 5;
for (let i = 0; i < 10; i++) {
// some code
}
// Here i is 5
في المثال الأول ، باستخدام var
، المتغير المعلن في الحلقة يعيد تعريف المتغير خارج الحلقة.
في المثال الثاني ، باستخدام let
، لا يقوم المتغير المُعلن عنه في الحلقة بإعادة تعريف المتغير خارج الحلقة.
عند let
استخدامه للإعلان عن المتغير i في حلقة ، سيكون المتغير i مرئيًا فقط داخل الحلقة.
لـ / لـ و لـ / في الحلقات
يتم شرح for/in
الحلقة for/of
والحلقة في الفصل التالي.
بينما الحلقات
يتم شرح while
الحلقة و the do/while
في الفصول التالية.