티스토리 뷰

JavaScript

렉시컬 스코프

미짱~ 2023. 1. 3. 08:11

동적 스코프(dynamic scope)

-함수가 호출되는 시점에 동적으로 상위 스코프를 결정

렉시컬 스코프(lexical scope,static scope, 정적스코프)

-함수가 어디에서 정의(선언)했는지에 따라 상위 스코프를 결정

  • 대부분 프로그래밍 언어는 렉시컬 스코프에 따른다. (자바스크립트도 포함)
  • 함수의 상위 스코프는 자신이 정의된 스코프
var x = 1;

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

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

foo();
bar();

 

위의 예제를 통해서 알아보자

 

foo(), bar() 함수를 호출시 어떤 값이 나올까?

foo 함수와 bar 함수는 전역에서 정의 된 함수이다. 

bar는 전역에서 정의 된 함수이며, 자신의 정의된 스코프인 전역 스코프를 상위 스코프로 기억(사용)한다. 

고로 bar는 1을 출력한다.  foo()도 1을 출력한다

 


오늘 느낀 점 

 

key point

자바스크립트는 렉시컬 스코프를 따른다

함수는 자신의 정의된 스코프를 기억(상위 스코프를 따른다)⭐⭐⭐⭐⭐

 

'JavaScript' 카테고리의 다른 글

전역 변수의 문제점  (0) 2023.01.10
변수의 생명 주기  (0) 2023.01.03
함수 레벨 스코프  (0) 2023.01.02
스코프 체인  (0) 2023.01.02
스코프의 종류  (0) 2023.01.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함