728x90 반응형 Js2 for문 안에 setTimeout 걸면 어떻게 동작할까 for (let i=0; i{ console.log(i) },2000)} 반복문이 한번 돌 때마다 let i는 블록 스코프를 가짐각 반복마다 i는 새로 선언된 것처럼 동작함 풀어서 쓰면 이런식으로 동작하는 듯function num(n) { setTimeout(() => { console.log(n); }, 2000);}function timer() { num(0); // 첫 번째 호출 num(1); // 두 번째 호출 num(2); // 세 번째 호출}timer(); 1. for 루프는 동기이기 때문에 setTimeout을 빠르게 3번 설정하고 종료됨2. 2초후 각 콜백 함수는 캡처된 고유의 값을 가지고 순서대로 실행함3. 0 1 2 순서대로 출력됨. 이 코드는 순서 보장이 됨4... 2024. 11. 4. 실행 컨텍스트와 호이스팅 실행 컨텍스트 실행할 코드에 제공할 환경 정보들을 모아 놓은 객체임 클로저를 지원하는 대부분의 언어에서는 동일한 개념이 있긴 함 스택 : 선입 후출큐 : 선입 선출 1. 동일한 환경에 있는 코드들을 실행2. 필요한 환경 정보들을 모아서 컨텍스트를 구성함3. 이걸 콜 스택에 쌓음4. 가장 위에 쌓여있는 컨텍스트와 관련있는 코드들을 실행함5. 이런식으로 전체 코드의 환경과 순서를 보장함 작동 순서 예시var a = 1;function outer(){ function inner(){ console.log("inner",a,b) a = 3; } inner(); console.log(a)}outer();var b = 3; 1. js코드를 실행하는 순간 전역 컨텍스트가 콜 스택에 담김 (최상단.. 2024. 11. 3. 이전 1 다음 728x90 반응형