JavaScript 코드인데 제가 정확하게 이해한 건지 잘 모르겠습니다.
``` let a = 10; const func = () => { for (; a > 0; a -= 1){ console.log("a > ", a); } }; func(); func(); /* 실행 결과: a > 10 a > 9 a > 8 a > 7 a > 6 a > 5 a > 4 a > 3 a > 2 a > 1 */ ``` for문의 로직을 콘솔에 출력시키는 func 함수를 두 번 호출했는데 실행 결과는 for 반복문이 한 회분만 출력이 됐습니다. ``` const func = () => { for (let a = 10; a > 0; a -= 1) { console.log('a > ', a); } }; func(); func(); /* 실행 결과: a > 10 a > 9 a > 8 a > 7 a > 6 a > 5 a > 4 a > 3 a > 2 a > 1 a > 10 a > 9 a > 8 a > 7 a > 6 a > 5 a > 4 a > 3 a > 2 a > 1 */ ``` 그래서 최상단에 있는 a 변수를 지우고 for문에 'let a = 10'을 집어넣었더니 이렇게 for문 로직이 두 번 출력되었습니다. 왜 이런 차이가 날까 곰곰이 생각해봤는데 func 함수 바깥에 생성했던 변수 a는 let 키워드로 생성이 되어 블록 레벨 스코프가 적용되서 해당 반복문이 한 번만 실행된 것으로 이해했는데 이게 맞나요?
Loading...