let score = 85;
if (score >= 90) {
console.log("Grade: A");
} else if (score >= 80) {
console.log("Grade: B");
} else if (score >= 70) {
console.log("Grade: C");
} else {
console.log("Grade: F");
}Grade: B
let score = 85;
if (score >= 90) {
console.log("Grade: A");
} else if (score >= 80) {
console.log("Grade: B");
} else if (score >= 70) {
console.log("Grade: C");
} else {
console.log("Grade: F");
}Grade: B
if (true) console.log("Hello, World!"); // Single-line if statementHello, World!
A compact form for simple if/else situations:
condition ? expressionIfTrue : expressionIfFalselet age = 19;
let status = age >= 18 ? "adult" : "minor";
console.log(status);adult
let day = 3;
let dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
default:
dayName = "Weekend";
}
console.log(dayName); Wednesday
Note the importance of the break statement - without it, execution “falls through” to the next case. This can be useful in some scenarios but is usually a source of bugs.
For Loopsfor LoopThe traditional counting loop:
// for (initialization; condition; update)
for (let i = 0; i < 5; i++) {
console.log(i);
}0
1
2
3
4
for...of Loop (ES6)This is conceptually similar to Python’s for item in list syntax.
const fruits = ["apple", "banana", "cherry"];
for (const fruit of fruits) {
console.log(fruit);
}apple
banana
cherry
for...in LoopUsed to iterate over the properties of an object:
const person = {
name: "John",
age: 30,
job: "developer"
};
for (const key in person) {
console.log(`${key}: ${person[key]}`);
}name: John
age: 30
job: developer
Be careful: for...in loops also iterate over inherited properties. When working with arrays, it’s generally better to use for...of or a standard for loop.
.entries())const arr = [1, 2, 3, 4]
for (let [i, value] of arr.entries()) {
console.log(i, value)
}0 1
1 2
2 3
3 4
while LoopExecutes as long as a condition is true:
let count = 0;
while (count < 5) {
console.log(count);
count++;
}0
1
2
3
4
4
do...while Looplet count = 0;
do {
console.log(count);
count++;
} while (count < 5);0
1
2
3
4
4
Even if the condition is initially false, the code block executes once:
let count = 10;
do {
console.log("This runs once even though count > 5");
} while (count < 5);This runs once even though count > 5
JavaScript provides statements to control loop execution:
break StatementTerminates the current loop immediately:
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // Exit the loop when i equals 5
}
console.log(i);
}0
1
2
3
4
continue StatementSkips the current iteration and continues with the next one:
for (let i = 0; i < 10; i++) {
if (i % 2 === 0) {
continue; // Skip even numbers
}
console.log(i);
}1
3
5
7
9
labeled StatementsLess commonly used, but allows you to break out of nested loops:
outerLoop: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerLoop; // Breaks out of both loops
}
console.log(`i=${i}, j=${j}`);
}
}i=0, j=0
i=0, j=1
i=0, j=2
i=1, j=0