Back to JavaScript
2026-03-056 min read

Bash Loops (JavaScript)

Learn Bash Loops (JavaScript) step by step with clear examples and exercises.

Why This Matters

Understanding Bash loops in JavaScript is crucial for scripting, web development, and system administration tasks. By mastering these control structures, you can automate repetitive tasks, write more efficient code, and handle large datasets with ease. Bash loops allow you to use the power of both JavaScript (a powerful programming language) and Bash (a robust shell), making it possible to create complex scripts that tackle a wide range of tasks.

Prerequisites

To fully grasp this lesson, you should have a basic understanding of:

  1. JavaScript syntax and variables
  2. Basic Node.js setup and running scripts
  3. Familiarity with command line interfaces (CLI)
  4. Understanding data structures such as arrays and objects
  5. Knowledge of conditional statements like if and else
  6. Familiarity with the Bash shell, including basic commands and syntax
  7. Understanding how to install and use Node.js packages (npm)

Core Concept

Bash loops are control structures that allow you to repeat a block of code multiple times until a certain condition is met. In JavaScript, you can use the for, while, and do...while loops for this purpose.

For Loop

The for loop iterates over a specified range or collection of values. Here's an example:

let numbers = [1, 2, 3, 4, 5];

for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}

In this example, the variable i starts at 0 and increments by 1 for each iteration until it reaches the length of the numbers array. The loop then terminates, and the output will be:

1
2
3
4
5

While Loop

The while loop continues to execute as long as a specified condition is true. Here's an example:

let i = 0;
let numbers = [1, 2, 3, 4, 5];

while (i < numbers.length) {
console.log(numbers[i]);
i++;
}

In this example, the loop continues to execute until the variable i reaches the length of the numbers array. The output will be the same as the previous example.

Do...While Loop

The do...while loop executes at least once before checking the condition. Here's an example:

let i = numbers.length;

do {
console.log(numbers[i - 1]);
i--;
} while (i > 0);

In this example, the loop starts by executing with i equal to the length of the numbers array and then decrements it on each iteration until it reaches 0. The output will be:

5
4
3
2
1

Nested Loops

You can also use nested loops to iterate over multiple collections or arrays simultaneously. Here's an example of a nested for loop that prints all possible combinations of two arrays:

let array1 = [1, 2, 3];
let array2 = ['a', 'b', 'c'];

for (let i = 0; i < array1.length; i++) {
for (let j = 0; j < array2.length; j++) {
console.log(array1[i], array2[j]);
}
}

In this example, the outer loop iterates through each element in array1, and the inner loop iterates through each element in array2. The output will be:

1 a
1 b
1 c
2 a
2 b
2 c
3 a
3 b
3 c

Worked Example

Let's create a simple script that calculates the sum of all numbers between 1 and 100 using a for loop:

let total = 0;

for (let i = 1; i <= 100; i++) {
total += i;
}

console.log(total); // Output: 5050

In this example, we initialize a variable total to 0 and then use a for loop to iterate through numbers from 1 to 100, adding each number to the total. After the loop finishes, we print out the final result.

Common Mistakes

Forgetting to increment/decrement the loop counter

let i = 0;
for (; i < 10; ) { // Incorrect syntax for initialization and condition
console.log(i);
}

In this example, the loop will not terminate because the initial value of i is not being incremented. To fix this, you should initialize and update the loop counter as shown in the core concept section.

Incorrect comparison operator

let i = 0;
while (i <= 10) { // Incorrect comparison operator, should be "<=" instead of "=="
console.log(i);
i++;
}

In this example, the loop will not terminate because the comparison operator is incorrectly set to ==. To fix this, use the correct comparison operator (<=, >=, <, or >) for your specific needs.

Not initializing the loop counter

let numbers = [1, 2, 3, 4, 5];
for (; numbers.length; ) { // Incorrect syntax for initialization and condition
console.log(numbers.shift());
}

In this example, the loop will not terminate because the initial value of i is not being set or updated. To fix this, initialize the loop counter as shown in the core concept section.

Infinite loops

An infinite loop occurs when a loop condition never becomes false, causing the loop to continue indefinitely. This can happen if the loop counter is never incremented or decremented, or if the loop condition is incorrectly set. To avoid this, make sure your loop conditions are properly defined and that you increment/decrement the loop counter as needed.

Using a for loop when a while or do...while loop would be more appropriate

Choose the most suitable loop structure for your specific needs. For example, if you need to iterate through an array in a specific order and don't care about the index, use a for...of loop instead of a for loop with an index variable.

Practice Questions

  1. Write a script that prints all even numbers between 2 and 50 using a for loop.
  2. Create a script that calculates the factorial of a number entered by the user using a while loop.
  3. Write a script that finds the sum of all multiples of 7 between 1 and 100 using a do...while loop.
  4. Write a script that sorts an array of numbers in ascending order using the bubble sort algorithm with a for loop.
  5. Write a script that finds the second largest number in an array using a for loop and the Math.max() function.
  6. Write a script that finds the smallest multiple of 5 greater than 100 using a while loop.
  7. Write a script that generates all Fibonacci numbers up to 100 using a for loop.
  8. Write a script that prints the prime numbers between 2 and 100 using a for loop and the Sieve of Eratosthenes algorithm.
  9. Write a script that finds the largest palindrome number in the range of 100,000 to 999,999 using a while loop.
  10. Write a script that generates all permutations of a string using a recursive function and a for loop.

FAQ

Why use Bash loops in JavaScript?

Using Bash loops within JavaScript allows you to use the power of both languages for more efficient scripting, automation, and system administration tasks. By combining the strengths of JavaScript (e.g., strong object-oriented programming features) with the shell capabilities provided by Bash loops, you can create powerful scripts that handle complex tasks with ease.

Can I use other types of loops besides for, while, and do...while in JavaScript?

Yes! JavaScript also supports the forEach() loop for arrays and the map(), filter(), and reduce() methods for manipulating collections of data. Additionally, you can create custom iterators using generators and the yield keyword.

How can I exit a loop early?

You can use the break statement to immediately terminate a loop, or the continue statement to skip over the current iteration and move on to the next one. In some cases, you may also want to set a flag variable that controls the loop's execution, allowing for more flexible control over when to exit the loop.

What are some best practices for using Bash loops in JavaScript?

Some best practices for using Bash loops in JavaScript include:

  1. Keeping your code organized and modular by separating logic into functions or modules.
  2. Using descriptive variable names to make your code more readable.
  3. Documenting your code with comments to explain what each section does.
  4. Testing your scripts thoroughly to ensure they work as intended.
  5. Optimizing your loops when necessary by using efficient data structures and algorithms.
  6. Using a combination of Bash and JavaScript when appropriate, taking advantage of both languages' strengths to create powerful scripts.
  7. Learning about Node.js packages (npm) that can help with common tasks such as file I/O, networking, and more, allowing you to write cleaner and more efficient code.
Bash Loops (JavaScript) | JavaScript | XQA Learn