[Javascript] for문에서 let과 var의 동작 분석
개요 for문에서 i를 반복하면, i는 차례로 0,1,2,3,4가 된다. 그러면, for문 밖에서 i를 참조하면, 5가 출력될거다. 왜냐하면, var로 선언된 i는 전역 변수이기 때문이다. 👇 아래 코드처럼, for문이 전부 실행된 후에 setTimeout이 끝나서, 큐에서 콜스택으로 console.log(i) *5가 들어간다. 이미 반복문이 다 돌고난 후여서, var로 선언된 전역변수 i는 5이다. 그래서 아래처럼 전부 5가 응답되는 원리이다. 그래서 다시 원리를 알아보면, 호이스팅때문이다 ❌ -> 호이스팅 때문이 아니라, 스코프문제이다. 변수 선언 스코프문제임. var, let var는 함수 스코프임 let은 블록 스코프임 var는 함수 내부에 선언하면 밖에서 참조할 수 없다. var를 함수 외부에 ..
2022. 11. 3.