스코프란 ?
모든 식별자( 변수명, 함수명, 클래스명 등. ) 자신이 선언된 위치에 의해 다른코드가 식별자 자신을 참조할 수 있는 유효범위
즉 , 식별자가 유효한 범위 이다
@@ 코드의 문맥과환경
렉시컬환경 : 코드가 어디서 실행되며 주변에 어떤 코드가 있는지
즉 , 코드의 문맥은 렉시컬 환경으로 이루어진다.
이를 구현한것이 실행컨텍스트 이며 , 모든코드는 실행컨텍스트에서 평가되고 실행된다.
스코프체인 : 스코프가 계층적으로 연결된것
블록레벨 스코프 : if , for ,while ,try/catch 등 ..
함수레벨 스코프 : var 로선언된 변수
js엔진은 시작스코프 (변수를 참조하는 코드의 스코프) - > 상위스코프 방향으로 이동하며 변수를 검색한다.
즉 함수를 어디서 정의했는지를에 따라 상위스코프를 결정하게된다. 이를 렉시컬 스코프 or 정적스코프라한다.
'JavaScript > 모던자바스크립트 딥다이브' 카테고리의 다른 글
[딥다이브] 17장 생성자 함수에 의한 객체생성 (0) | 2022.03.09 |
---|---|
[딥다이브] 16장 프로퍼티 어트리뷰트 (0) | 2022.03.09 |
[딥다이브] 15장 let, const 키워드와 블록레벨 스코프 (0) | 2022.02.22 |
[딥다이브] 14장 전역변수의 문제점 (0) | 2022.02.21 |
[딥다이브] 12장 함수 (0) | 2022.02.14 |