for loop vs foreach in javascript


By gobrain

JavaScript is a programming language that provides a variety of loops to execute a set of code multiple times. The most popular loops mechanisms are for and forEach , for in and for of. Although they may appear similar, there are differences between the two that make them suitable for different use cases. In this article, we will compare for loops and forEach loops and discuss when to use each.

For Loops

The for loop is a traditional loop that is widely used in JavaScript. It consists of three parts:

  • The initialization statement initializes a variable that will be used in the loop.
  • The condition checks if the loop should continue executing.
  • The update statement is executed after each iteration and is used to update the loop variable.

Here is a simple example of a for loop that prints the numbers 0 to 9:

for (let i = 0; i < 10; i++) {
  console.log(i); // 0, 1, 2 ... 9


The for loop is suitable for iterating over arrays and objects with a known length. It allows for more fine-grained control over the iteration, such as skipping iterations or breaking out of the loop early.


The forEach loop is a higher-order function that is available on arrays in JavaScript. It executes a provided function once for each element in the array. The provided function accepts three parameters:

  • the current element,
  • the index of the element,
  • the array itself.

Here is an example of a forEach loop that prints the numbers 0 to 9:

const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

numbers.forEach(function(number) {


The forEach loop is suitable for iterating over arrays and performing a set of operations on each element. It is more expressive than for loops, making it easier to read and write.

For ... In

The loop is a type of loop used in JavaScript to iterate over the properties of an object. It is also known as an enumeration loop. The loop iterates over each enumerable property of an object, executing the code block for each property.

var person = {
  name: "John",
  age: 30,
  gender: "Male"

for (var key in person) {
  console.log(key + ": " + person[key]);
name: John
age: 30
gender: Male

For ... Of

In JavaScript, the for...of loop is used to iterate over iterable objects such as arrays, strings, maps, sets and other collections.

Here's an example of using for...of to loop over an array of numbers:

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

for (const number of numbers) {

For vs Foreach vs For In vs For of

Control Over Iteration

In general, for loops are suitable for iterating over arrays and objects with a known length and requiring more control over the iteration. They are also suitable for cases where the loop variable needs to be manipulated within the loop.

Array Length

On the other hand, forEach and for in loops are suitable for iterating over arrays and performing a set of operations on each element. They are also suitable for cases where the length of the array is not known in advance and where the loop variable does not need to be manipulated.


for loops are generally faster than other loops, especially when working with large arrays. This is because for loops are compiled and optimized by the JavaScript engine, and they provide direct access to the index and length of the array. forEach, on the other hand, has more overhead because it involves creating a new function for each iteration.

However, for small arrays or when performance is not a critical factor, the difference between for and forEach may not be noticeable.


One of the advantages of using forEach, for of and for in is that it can be more concise and easier to read than a for loop, especially if you're just performing a single action on each element.


In conclusion, for loops, forEach, for in and for of are two popular loop constructs in JavaScript. They have different features and capabilities, making them suitable for different use cases. Understanding the differences between the two can help you choose the right loop for your specific use case, resulting in more efficient and maintainable code.

Thank you for reading.