JavaScript JavaScript Loops, Arrays and Objects Simplify Repetitive Tasks with Loops The Refactor Challenge, Part 2

Michael Helgesen
Michael Helgesen
1,140 Points

The var in for loop

Hi folks. Greetings from Norway. Total noob here trying to hang on with these loops. This may be a stupid question, but I would love to hear an explanation. I hope that helps me to learn better :)

My question is about the var in the for loop: for (var i = 0; i < 10; i += 1)

Why cant it be just like this: for (i = 0; i < 10; i += 1)

Thanks so much!

2 Answers

That's a fine question. If you run a for loop without the var in the initialization, it will still work. Probably. The thing to know is the concept of scope. In the for loop, you are initializing the counter variable. Any time you are initializing a variable in javascript, you definitely want to use var to make sure that variable is assigned to the right scope. If you don't use var, the js interpreter doesn't know what scope to put it in, so it will guess and probably put it in the global scope, usually the window object, which isn't where you want it to be. You only want it to exist for the duration of your loop, you don't need it sticking around in the wrong scope, or you'll get unexpected results.

That's why I say that it might very well work, but why chance it? Does that make any sense?

Michael Helgesen
Michael Helgesen
1,140 Points

Ah, thank you so much for that excellent answer! I just thought of scope actually. It so many words and definitions to remember now in the start. That was really clarifying. Really appreciate it!

Michael Helgesen
Michael Helgesen
1,140 Points

Of course! I see it now. That is a function scope ? Thanks so much for your answer.