for Loop
// for (init; condition; update)
for (let i = 0; i < 5; i++) {
console.log(i); // 0, 1, 2, 3, 4
}
// Count down
for (let i = 10; i >= 0; i--) {
console.log(i);
}while Loop
let count = 0;
while (count < 3) {
console.log(count); // 0, 1, 2
count++;
}
// do...while — runs at least once
let n = 0;
do {
console.log(n);
n++;
} while (n < 3);for...of — Iterate Values
const fruits = ["apple", "banana", "cherry"];
for (const fruit of fruits) {
console.log(fruit); // apple, banana, cherry
}
// Works on strings too
for (const char of "hello") {
console.log(char); // h, e, l, l, o
}for...in — Iterate Object Keys
const user = { name: "Alice", age: 25, city: "London" };
for (const key in user) {
console.log(key, user[key]);
// name Alice
// age 25
// city London
}break and continue
// break — exit loop immediately
for (let i = 0; i < 10; i++) {
if (i === 5) break;
console.log(i); // 0, 1, 2, 3, 4
}
// continue — skip current iteration
for (let i = 0; i < 6; i++) {
if (i % 2 === 0) continue; // skip even numbers
console.log(i); // 1, 3, 5
}Prefer
for...of over traditional for loops when iterating arrays — it's cleaner and less error-prone (no off-by-one index mistakes).