Lexical Scope

iadorora·2024년 11월 23일

daily record

목록 보기
24/27

Lexical Scope

함수를 어디서 선언 했는지에 따라 상위 스코프를 결정!⭐

즉, 함수를 어디서 호출 했는지는 스코프의 결정에 아무런 영향을 끼치지 않는다.

자바스크립트는 Lexical Scope 를 따르며, >> 정적 스코프

Perl, Bash shell은 함수의 호출에 따라 상위 스코프가 정해지는 Dynamic Scope를 따른다. >> 동적 스코프

예제

var x = 1;

function first() {
  var x = 10;
  second();
}
  
function second() {
  console.log(x);
}

first(); //1
second(); //1

코드 해석

자바스크립트는 Lexical Scope 를 따르기 때문에 함수를 어디에서 호출했는지는 스코프 결정에 아무 영향을 끼치지 않는다.

따라서 second()first() 안에서 호출된 것과 상관없이
second() 는 전역 범위(Global Scope)에 선언되어 있으므로

전역 범위(Global Scope)에 있는 변수 x의 값이 2번 출력된다.

profile
Archive

0개의 댓글