본문 바로가기
Programming & Platform/JavaScript

JavaScript 실행 컨텍스트와 Variable Environment 소개, 생성 방법

by 코드스니펫 2023. 11. 8.
반응형

JavaScript의 실행 컨텍스트와 Variable Environment 소개, 생성 방법

 

javascript logo

 

JavaScript에서 코드가 실행될 때, 실행 컨텍스트는 중요한 역할을 합니다. 이 실행 컨텍스트는 변수 환경(VariableEnvironment)을 포함하고, 코드가 실행되는 환경에서 사용 가능한 변수와 함수 정보를 저장합니다. 이 글에서는 VariableEnvironment의 역할과 예시 코드를 통해 이를 자세히 알아보겠습니다.

 

 

Variable Environment(변수 환경)의 역할

 

 

인생사진 쏙쏙 코딩네컷 | 스파르타코딩클럽 무료특강

1시간 만에 코딩을 무료로 배워 인생사진을 모아 추억을 기록하는 네컷사진으로 만들어보세요.

spartacodingclub.kr

 

Variable Environment의 정의

Variable Environment는 현재 실행 중인 컨텍스트(전역 또는 함수 내부)에서 사용 가능한 변수와 함수 정보를 저장하는 객체입니다. 이 객체는 코드가 실행되는 동안 변수 및 함수에 접근하고 수정할 수 있는 공간을 제공합니다.

 

VariableEnvironment의 생성

Variable Environment는 실행 컨텍스트가 생성될 때 함께 생성됩니다. 함수 내부에서 실행 컨텍스트가 만들어질 때, 새로운 Variable Environment가 생성되며 함수의 인자, 지역 변수, 및 내부 함수를 저장합니다.

 

예시 코드로 VariableEnvironment 이해하기

function example() {
  var a = 10;
  function inner() {
    var b = 20;
  }
}

example();

 

  • example 함수가 호출될 때, example 함수의 실행 컨텍스트와 VariableEnvironment가 생성됩니다.
  • example 함수의 Variable Environment에는 a 변수가 저장됩니다.

 

VariableEnvironment의 스코프 체인

 

 

스코프 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

현재 실행되는 컨텍스트를 말한다. 여기서 컨텍스트는 값과 표현식이 **"표현"**되거나 참조 될 수 있음을 의미한다. 만약 변수 또는 다른 표현식이 "해당 스코프"내에 있지 않다면 사용할 수 없

developer.mozilla.org

 

스코프 체인의 역할

VariableEnvironment는 스코프 체인을 형성합니다. 스코프 체인을 통해 변수 및 함수가 현재 범위 및 외부 범위에서 검색됩니다.

 

예시 코드로 스코프 체인 이해하기

function outer() {
  var x = 10;
  function inner() {
    var y = 20;
    console.log(x + y); // x와 y는 스코프 체인을 통해 접근 가능
  }
  inner();
}

outer();

 

inner 함수에서 x와 y 변수는 스코프 체인을 통해 outer 함수의 VariableEnvironment에서 찾을 수 있습니다.

 

끝으로

 

JavaScript의 실행 컨텍스트와 Variable Environment는 코드 실행 중에 변수 및 함수 정보를 저장하고 관리하는 중요한 역할을 합니다. VariableEnvironment를 통해 스코프 체인이 형성되며, 변수와 함수에 접근하는 메커니즘을 이해할 수 있습니다. 이를 통해 변수의 범위와 유효 범위를 파악하고, 코드를 효과적으로 작성할 수 있습니다.

 

▼ 아래 글도 읽어보세요! ▼

 

 

JavaScript 템플릿 리터럴 쉽게 배우기 - 소개, 특징, 장점, 예제 코드

JavaScript 템플릿 리터럴 쉽게 배우기 - 소개, 특징, 장점, 예제 코드 템플릿 리터럴은 JavaScript에서 문자열을 작성하는 새로운 방식을 제공합니다. 이 글에서는 템플릿 리터럴의 개념, 사용법, 그리

lemonlog.tistory.com

 

 

JavaScript 요즘 개발 패턴 2가지 선택적 연산자, 널리시 병합 연산자

JavaScript 요즘 개발 패턴 2가지 선택적 연산자, 널리시 병합 연산자 JavaScript의 개발 패턴은 계속 발전하고 있으며, 최신 표준 및 모범 사례를 따르는 것이 중요합니다. 이 글에서는 현대적인 개발

lemonlog.tistory.com

 

 

JavaScript 함수와 메서드 개념, 차이, 활용, 예시코드

JavaScript 함수와 메서드 개념, 차이 활용 예시 코드 JavaScript는 함수와 메서드라는 두 가지 중요한 개념을 제공하여 코드를 구성하고 기능을 구현하는 데 도움을 줍니다. 이 글에서는 JavaScript에서

lemonlog.tistory.com