لماذا الحلقات؟
لتكرار عمل عدّة مرّات دون نسخ الكود: طباعة قائمة، معالجة مصفوفة، إلخ.
حلقة for
الأشهر. ثلاثة أجزاء: البداية، الشرط، التغيير:
for (let i = 0; i < 5; i++) {
console.log(i); // 0 1 2 3 4
}
حلقة while
تكرّر طالما الشرط صحيح:
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
حلقة do ... while
تنفّذ مرة على الأقل ثم تتحقّق:
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
for ... of — المرور على القيم 🌟
الأنظف للمرور على عناصر مصفوفة أو نص:
let colors = ["أحمر", "أخضر", "أزرق"];
for (let color of colors) {
console.log(color);
}
for ... in — المرور على المفاتيح
للمرور على خصائص كائن:
let person = { name: "براء", age: 25 };
for (let key in person) {
console.log(key, ":", person[key]);
}
🔑
for...ofللقيم (المصفوفات)، و**for...inللمفاتيح** (الكائنات). لا تخلط بينهما.
التحكّم: break و continue
for (let i = 0; i < 10; i++) {
if (i === 5) break; // يوقف الحلقة تمامًا
if (i % 2 === 0) continue; // يتخطّى للدورة التالية
console.log(i); // 1 3
}
دوال التكرار على المصفوفات (لمحة)
غالبًا تُفضَّل على الحلقات التقليدية (تفاصيلها في درس المصفوفات):
colors.forEach(color => console.log(color));
الأخطاء الشائعة
- ❌ حلقة لا نهائية: نسيان
i++فيwhile→ تجمّد المتصفح. - ❌ خلط
for...ofوfor...in→ الأول للقيم، الثاني للمفاتيح. - ❌ تعديل المصفوفة أثناء المرور عليها → نتائج غير متوقّعة.
خلاصة
for للعدّ المعروف، while/do-while حسب الشرط، for...of للقيم وfor...in للمفاتيح، وbreak/continue للتحكّم. الحلقات تجعل برنامجك يكرّر العمل بكفاءة.