Execution Context 함수가 호출되엇을 때, 함수 내부의 코드가 실행될 수 있도록 만들어진 환경이자, 함수의 결과가 저장되는 영역이다. 함수의 모든 처리는 이 "실행 컨텍스트" 안에서 이뤄진다. 즉 실행 컨텍스트는, 실행 가능한 코드를 "실행하기 위한
JS 엔진은 함수를 실행하기 위해, 함수 실행에 필요한 모든 변수나 함수등을 실행 컨텍스트라는 덩어리에 묶는다. 이번 포스트에서 실제 그 덩어리는 어떻게 생겼는지를 알아보겠습니다. 실행 컨텍스트 내부 구조 JS 엔진은 함수를 실행해야 할 때, 위와 같은 빈 껍데기의
JS 엔진은 다음과 같은 실행 흐름을 갖는다. 컨텍스트 생성 및 Call Stack에 컨텍스트 push 컨텍스트 초기화 단계 코드를 실행하기 전에 엔진은 초기화 단계를 진행한다. 컨텍스트의 코드를 순회하면서 변수나 함수를 초기화한다. 순회할 때, function키워드
이번에는 매개변수는 실행 컨텍스트에서 어떻게 처리되는지에 대해 포스팅하겠습니다.
지금까지 실행 컨텍스트에 담기는 정보를 알아봤습니다.실행 컨텍스트에는 함수 바로 바깥의 Scope와 내부 Scope만이 저장되는데, 우리는 JS에서 몇 단계 바깥에 있는 변수를 사용 가능하다는 것을 알고 있습니다.
우리는 this를 이용해서 함수에게 내/외부 Scope 이외에 "변수를 얻을 수 있는 새로운 원천을 제공한다.
Hoisting과 Closure는 그저 JS Engine 동작에 의해 발생하는 현상을 지칭하는 거창한 단어라고 생각합니다.
Host Object는 환경에서 제공해준다. 따라서 Host Object는 항상 동일한 것이 아니며, 환경마다 다르다. 브라우저 환경에서 제공하는 Host Object는 window이며, Node환경에서 제공하는 Host Object는 NodeList다.
Prototype이란? prototype은 자바스크립트의 객체지향성을 지탱하는 개념이다. JS에서는 prototype으로 상속을 구현할 수 있다.
Prototype을 이용하여 JS의 객체지향성을 달성할 때, 엔진이 어떤 동작을 하는지 알아봅시다.
함수 정의가 끝나자마자 실행되는 함수를 IIFE(Immediately Invoked Function Expression)라고 합니다.
ES6 이전에는 JS 자체의 Module 시스템이 존재하지 않았다. 하나의 파일에 모든 코드를 작성하면, 실행은 하지 않더라도, 엔진은 해석을 한다. 메모리를 차지하므로 비효율적이다.Module은 파일을 분리하여 필요한 시점에 필요한 것을 가져와서 해석하고 실행한다.
Javascript에서 객체를 불변하게 만드는 법