렉시컬 스코프(Lexical scope)

Jeris·2023년 4월 10일
0

코드잇 부트캠프 0기

목록 보기
16/107

렉시컬 스코프란

스코프란 식별자(변수, 함수 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름) 접근 규칙에 따른 유효 범위를 뜻합니다.

렉시컬 스코프란 식별자 유효 범위가 함수를 호출할 때 결정되는 것이 아닌, 선언할 때 결정되는 것을 뜻합니다. 정적 스코프(Static scope)라고도 합니다. 자바스크립트는 렉시컬 스코프를 따릅니다.


	var x = 'foo';

	function foo() {
		var x = 'bar';
		bar();
	}

	function bar() {
		console.log(x);
	}

	foo();
	bar();

실행 결과

foo(); 실행 결과

  • foo 는 함수 단위에서 var x = ‘bar’; 를 통해 x 를 다시 정의하고, bar(); 를 실행합니다.
  • 하지만, bar 함수 선언할 때 x 는 var x = 'foo'; 전역변수로 할당된 ‘foo’를 값으로 가집니다.
  • 따라서 foo(); 실행 결과는 bar 함수 선언시 x 의 값인 ‘foo’ 를 콘솔에 로그로 남깁니다.

bar(); 실행 결과

  • bar 함수 선언할 때 x 의 값인 ‘foo’ 를 콘솔에 로그로 남깁니다.
profile
job's done

0개의 댓글