스코프

Jun Hyoung Park·2022년 7월 12일
0

스코프

  • 스코프 = 식별자 유효범위
    • 모든 식별자는 자신이 선언된 위치에 따라 유효 범위가 결정된다
    • 폴더와 같은 역할을 수행(위치가 서로 다르기 때문에 같은 이름이여도 상관이 없다)

스코프의 종류

전역과 전역스코프

  • 어디서든지 참조 가능
  • 전역: 전역스코프 형성
  • 전역변수: 전역스코프의 변수

지역과 지역스코프

  • var 태그 함수 몸체 내부(함수레벨스코프)
  • let, const 태그 블록 단위(블록레벨스코프)
    • var는 함수 내부를 제외하면 모든 변수가 전역변수
    • let, const 모든 블록 단위안의 변수는 지역변수
	//var
	function a(){
    	var b=0; // 지역변수
    }
	for(var a=0; ;) // a 전역변수
    
    //let const
    function b(){
    	let c=0; //지역변수
    }
	for(let b=0; ;)// 지역변수
  • 지역: 지역스코프 형성
  • 지역변수: 지역스코프의 변수
  • 지역변수는 자신의 지역스코프와 하위 지역스코프에서 유효

스코프체인

  • 스코프가 함수의 중첩에 의해 계층적구조를 갖는 것
  • 스코프의 계층: 스코프체인
  • 계층
    • inner 지역스코프 -> outer 지역스코프 -> 전역스코프
    • 모든 지역 스코프의 최상위는 전역스코프이다
	// inner 지역스코프에서 변수 x를 찾음 없다면
    // 상위스코프로 이동하며 찾는다 
    // 전역변수로 구현이 되있다면 그만큼이 시간이 소비된다

	//전역
	let x =3;
	//outer 지역스코프
	function a(){
    //inner 지역스코프
     function b(){
       console.log(x); 
     }
    }

렉시컬 스코프

  • 동적스코프
    • 함수를 어디서 호출했는지에 따라 상위 스코프가 결정
  • 렉시컬스코프(정적스코프)
    • 함수 정의가 평가되는 시점에 상위 스코프를 결정
profile
프론트엔드 지망생

0개의 댓글