Dave
Dave

Reputation: 13

In JavaScript what does for(;;){...} do?

I've seen this in some JavaScript code but I don't get what it does.

for(;;){

  //other code

}

I'm used to the for(i=0;i<someLength;i++){...} format but I'm stuck to figure out how or what the "(;;)" syntax is for?

Upvotes: 1

Views: 1209

Answers (5)

Jonathon Faust
Jonathon Faust

Reputation: 12545

That's an infinite loop. A for loop has 3 sections separated by ;: the initialization section where you normally declare and define your counter's starting conditions, the middle conditional statement that evaluates to true or false, and the increment section.

All 3 of these sections are optional. You can include any or none. The loop continues to loop until the conditional is false. If that condition is never met (since it was left out), it loops forever.

A place where you'll likely see it is prepended to JSON data as described by this SO post.

Upvotes: 1

Matti Virkkunen
Matti Virkkunen

Reputation: 65156

for (;;) is the exact same syntax. You're allowed to leave out parts that go between the semicolons, even all of them. If you leave the condition out, it's assumed to be true, so it results in an infinite loop. You can of course still exit with break or return or whatnot, hence making it not useless.

Upvotes: 4

Dan Grossman
Dan Grossman

Reputation: 52372

It creates a loop that runs indefinitely. It's the same syntax you're used to seeing, there's just no code between the semicolons.

The syntax for a for loop includes an initializer, followed by a semicolon, followed by a condition for continuing the loop, followed by a semicolon, followed by code to run after each iteration of the loop.

Since there is no initializer, no condition that ever evaluates to false, and no post-loop code, the loop runs forever.

Upvotes: 3

jhartz
jhartz

Reputation: 1596

In JavaScript, for (;;) { ... } just creates an infinite endless loop, which is almost exactly the same as:

while (true) {
    // ...
}

or

do {
    // ...
} while (true);

Upvotes: 6

Related Questions