// for(var sim = 0; sim < 3; sim++){
// setTimeout(function(){
// console.log(sim)
// }, sim*1000)
// }

  • 실행 컨텍스트에서 setTimeout은 queue에 대기하여 있다가 for 문이 끝나면 그때 stack으로 이동하여 실행되는데 이때 변수를 for문이 끝난 시점의 변수인 3을 출력한다.

for(var i=0; i<5; i++){
function timer(j){
}, j * 1000)
- 결과는 0 부터 4 까지 1초마다 출력 .

  • timer 가 실행되면 j 값과 함께 scope가 생성된다.
  • setTimeout은 j를 참조하게 된다.

for(let k = 0; k < 5; k++){
}, k*1000)




Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium


A Guide To Front-End Web Development in 2020

Refs in React : All you need to know !

JavaScript Frameworks Considered Harmful

Tour The World … Factbook


You are the french on my Toast!

10 Important JavaScript Interview Question

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


More from Medium

Context in Javascript an

Asynchronous JavaScript with async/await

JavaScript — Prerequisites for Functional Programming: Data Immutability

.filter() array method