Execution Context ( ⊃ Hoisting 개념 )

Execution Context(실행 컨텍스트)코드를 실행할떄 필요한 환경 정보들을 담은 객체이다.

  • 동일한 환경에 있는 코드들을 실행할떄, 필요한 환경 정보들을 모아 context를 구성하고, 이를 call stack에 올렸다가, 가장 위에 쌓여있는 context와 관련있는 코드들을 실행하는 식으로 전체 코드의 환경과 순서를 보장한다.
    (stack 자료구조에서 LIFO 을 생각하면 이해가 간편한다.)

  • execution context 는 함수를 실행할떄 구성된다.

+) ES6 부터는 let,const block scope가 추가되었다.

Read more

javascript 메모리 할당 방식 (primitive vs reference)

javascript에서 primitive type 과 reference type의 memory 할당 방식 차이

1
var a;

다음과 같이 primitive type 변수를 선언하면 메모리 공간이 미리 할당되고, 변수에 값을 저장하면

1
a = "abcdefg";

다른 메모리 공간에 abcdefg string값이 저장이 되고, 그 메모리 주소가 a가 참조하는 메모리 공간에 저장된다.

ex) 메모리주소 100번지에 abcdefg 값이 우선 저장이 되고, a가 참조하는 메모리 공간 200번지에 100번지 주소가 저장된다.

반면 reference type의 경우 primitve type과 메모리 할당방식이 조금 다르다.

Read more