- JS Introduction
- JS Introduction
- JS Comments
- JS Variables
- JS Datatypes
- JS Operators
- JS Type Conversions
- JS Control Flow
- JS Comparisons
- JS If else
- JS If else Ladder
- JS Ternary Operator
- JS Switch
- JS For Loop
- JS For In
- JS For Of
- JS While
- JS Do While
- JS Break & Continue
- JS Functions
- JS Function Declaration
- JS Function Parameters
- JS Return Statement
- JS Function Expressions
- JS Anonymous Functions
- JS Objects
- JS Objects
- JS Object Methods
- JS Object Constructors
- JS Object Destructuring
- JS Object Prototypes
- JS Map, Filter & Reduce
- JS ES6
- JS ES6
- JS let and const
- JS Arrow Functions
- JS Template Literals
- Destructuring Assignment
- JS Spread Operator
- JS Default Parameters
- JS Classes
- JS Inheritance
- JS Map
- JS Set
- JS Async
- JS Callbacks
- JS Asynchronous
- JS Promises
- JS Async/Await
- JS HTML DOM/BOM
- JS Document Object
- JS getElementbyId
- getElementsByClassName
- JS getElementsByName
- getElementsByTagName
- JS innerHTML
- JS outerHTML
- JS Window Object
- JS History Object
- JS Navigator Object
- JS Screen Object
JavaScript While Loop
The while loop is one of the most fundamental control flow statements in JavaScript. It allows you to execute a block of code repeatedly as long as a specific condition evaluates to true. Unlike a for loop, which is typically used when you know exactly how many times you want to iterate, a while loop is ideal for situations where the number of iterations depends on dynamic factors or external input.
while loop as an "if" statement that keeps repeating itself until the condition finally becomes false.
Syntax:
while (condition) {
// This code runs over and over as long as condition is true
}
Before each iteration, JavaScript evaluates the condition. If it is true, the code inside the curly braces runs. If it is false, the loop terminates immediately, and the script continues with the next line of code following the loop.
Why it is Used:
Dynamic Initialization: The conditions that control a while loop don't have to be simple numbers. They can be based on state changes, boolean flags, or data returned from a function.
let isProcessing = true;
while (isProcessing) {
// Perform some background task
if (checkIfTaskFinished()) {
isProcessing = false; // The loop stops once the task is done
}
}
while loop when you are waiting for a specific event to happen, such as reading data from a stream or waiting for a user to provide valid input.
Avoiding Infinite Loops: Because the loop continues as long as the condition is true, you must ensure that something inside the loop eventually changes the condition to false. If the condition never changes, the loop runs forever, freezing your browser or crashing your application.
let counter = 0;
while (counter < 5) {
console.log("Current count is:", counter);
// We increment counter so the condition (counter < 5) eventually becomes false
counter++;
}
Exiting the Loop with Break: Sometimes you need to exit a loop early, even if the main condition is still true. The break statement provides an immediate exit path.
let number = 0;
while (true) { // This looks like an infinite loop...
console.log(number);
number++;
if (number === 5) {
break; // ...but this "break" saves us by exiting when number hits 5
}
}
while (x = 10). Note the single equals sign (assignment) instead of a triple equals (comparison). This sets x to 10 and evaluates to true every time!
Usage with User Input: In real-world web development, while loops are frequently used to validate user input. You can keep asking the user for the same information until they provide data that meets your requirements.
let userInput;
// This loop keeps running until the user types 'exit'
while (userInput !== 'exit') {
userInput = prompt('Enter a value (type "exit" to end):');
if (userInput !== 'exit') {
console.log('You entered:', userInput);
}
}
Examples:
Example 1: Looping with a Counter
This is the classic way to use a while loop to perform an action a specific number of times.
let count = 0;
while (count < 5) {
console.log("Iteration number: " + count);
count++;
}
Example 2: Processing a Queue
In modern applications, you might use a while loop to clear out an array of "tasks" or "messages" until nothing is left.
let taskQueue = ['Email User', 'Update Database', 'Log Activity'];
while (taskQueue.length > 0) {
let currentTask = taskQueue.shift(); // Removes the first item from the array
console.log('Now processing: ' + currentTask);
}
console.log('All tasks completed!');
Summary
The while loop in JavaScript is a flexible tool for handling repetitive tasks where the exact number of iterations isn't known upfront. It is particularly powerful when dealing with user interactions, data processing, or any logic that depends on dynamic conditions. Just remember the "Golden Rule" of while loops: always provide a clear path for the condition to become false to keep your code running smoothly.