JavaScript/실행컨텍스트

    [JavaScript] 스코프, 렉시컬환경

    1. 스코프(Scope)란? ​ Scope를 직역하면 범위, 영역 이라는 뜻입니다. 즉 자바스크립트에서의 스코프는 식별자(변수, 매개변수, 함수)가 유효한 범위 를 말합니다. 스코프(유효범위)는 함수, 변수 등이 선언되는 환경을 기반으로 합니다. ​ var x = 'global'; ​ function foo() { var x = 'local'; console.log(x) } ​ foo(); console.log(x); ​x라는 변수를 전역환경과 함수내부에서 각각 선언을 해주고 다른 값을 할당해 주었다. 자바스크립트는 어떤 변수를 참조할까? 각각 전역 스코프 와 foo 함수 스코프 를 가짐으로 아래의 결과가 출력 // local // global 그러므로 스코프 란 식별자를 검색할 때 검색 가능한 범위 라..

    [JavaScript] 실행컨텍스트(Excution Context), 스코프체인, Variable Object

    실행컨텍스트란(Execution Context) 실행컨텍스트란 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이다. 즉 실행 가능한 코드가 실행되기 위해 필요한 환경이다. 자바스크립트 엔진은 코드를 실행하기 위해 여러가지 정보를 알고 있어야 한다. 실행에 필요한 정보들은 아래와 같다. 변수: 전역변수, 지역변수, 매개변수, 객체의 프로퍼티 함수 선언 변수의 유효범위(Scope) this 가장 먼저 자바스크립트 코드가 실행되게 되면 실행컨텍스트 스택에 GEC (Global Execution Context)가 가장 아래에 놓이게된다. 그 후 코드를 읽어가며 실행가능한 함수를 만나게 되고 그 함수를 실행하게 되면 FEC(Function Execution Context)가 GEC 위에 쌓이게 된다. 이렇게..