JavaScript Question #Day 2

What’s the output ?

for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1);
}

for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1);
}

A: 0 1 2 and 0 1 2

B: 0 1 2 and 3 3 3

C: 3 3 3 and 0 1 2

Answe…


This content originally appeared on DEV Community and was authored by Sooraj S

What's the output ?

for (var i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 1);
}

for (let i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 1);
}
  • A: 0 1 2 and 0 1 2
  • B: 0 1 2 and 3 3 3
  • C: 3 3 3 and 0 1 2

Answer: C

Because of the event queue in JavaScript, the setTimeout callback function is called after the loop has been executed. Since the variable i in the first loop was declared using the var keyword, this value was global. During the loop, we incremented the value of i by 1 each time, using the unary operator ++. By the time the setTimeout callback function was invoked, i was equal to 3 in the first example.

In the second loop, the variable i was declared using the let keyword: variables declared with the let (and const) keyword are block-scoped (a block is anything between { }). During each iteration, i will have a new value, and each value is scoped inside the loop.


This content originally appeared on DEV Community and was authored by Sooraj S


Print Share Comment Cite Upload Translate Updates
APA

Sooraj S | Sciencx (2021-07-13T04:09:15+00:00) JavaScript Question #Day 2. Retrieved from https://www.scien.cx/2021/07/13/javascript-question-day-2/

MLA
" » JavaScript Question #Day 2." Sooraj S | Sciencx - Tuesday July 13, 2021, https://www.scien.cx/2021/07/13/javascript-question-day-2/
HARVARD
Sooraj S | Sciencx Tuesday July 13, 2021 » JavaScript Question #Day 2., viewed ,<https://www.scien.cx/2021/07/13/javascript-question-day-2/>
VANCOUVER
Sooraj S | Sciencx - » JavaScript Question #Day 2. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/07/13/javascript-question-day-2/
CHICAGO
" » JavaScript Question #Day 2." Sooraj S | Sciencx - Accessed . https://www.scien.cx/2021/07/13/javascript-question-day-2/
IEEE
" » JavaScript Question #Day 2." Sooraj S | Sciencx [Online]. Available: https://www.scien.cx/2021/07/13/javascript-question-day-2/. [Accessed: ]
rf:citation
» JavaScript Question #Day 2 | Sooraj S | Sciencx | https://www.scien.cx/2021/07/13/javascript-question-day-2/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.