-
블록 스코프와 지역스코프Web Dev/1. JS 문법 관련 2021. 3. 28. 16:37728x90
function test() { for (var i = 0; i < 10; i++) { // var는 블록스코프를 인정하지 않아서 local(지역스코프에 포함) (function () { var v = i; setTimeout(() => console.log(v), 100); })(); for (let i = 0; i < 10; i++) { // let 키워드는 블록스코프 단위로 돌아가기때문에 block스코프에 포함 console.log("i", i); } } } test();
스코프는 식별자가 유효한 범위를 말한다
- var키워드는 함수가 실행되면서 생성된 실행컨텍스트의 지역스코프에 등록되고,
- let, const는 블록 스코프를 단위로 동작해서 블록 내에 있을때는 블록스코프에 등록이된다. 아니면 Local스코프에서 등록된다.
이 스코프는 모두다 렉시컬 스코프를 따르기때문에 함수가 어디에서 정의되어있는지에 따라 상위 스코프가 정해진다. 즉, 스코프 체인은 함수가 정의되었을때의 lexicalEnvironment를 참조한다
'Web Dev > 1. JS 문법 관련' 카테고리의 다른 글
ES6의 스코프 (0) 2021.05.20 Modules (0) 2021.05.19 Spread vs Rest (0) 2021.03.16 [함수형 프로그래밍] 섹션11. 비동기:동시성 프로그래밍 3(QnA) (0) 2021.02.13 [함수형 프로그래밍] 섹션10. 비동기:동시성 프로그래밍 2 (0) 2021.02.11