실행컨텍스트 실행컨텍스트는 코드가 실행되기 위해 필요한 환경 이미지출처, 내용참고사이트 자바스크립트가 call Stack으로 코드를 처리하는 것은 알고있다. 이 Call Stack에 쌓이는 것은 함수다. 쌓인다고 해서 내부 로직이 실행되는 것이 아니다. 이 함수가 실행되려면 필요한 것들이 있다. 함수 내부에서 사용되는 변수나 전달받은 arguments, 내부 함수, 해당 함수의 스코프가 어떻게 되어있는지 등에 대한 관련 정보들이 어딘가에 선언되어있어야 작성된 함수가 올바르게 수행될 수 있다. 이 정보들을 담는 환경(공간)이 "실행컨텍스트"이다. 실행컨텍스트란, 코드가 실행되기 위해 필요한 환경이다. 실행컨텍스트 스택 Global EC는 브라우저 종료시까지 사라지지 않는다. call stack과 같다보면 ..
호이스팅 먼저 염두에 둘 것들. 여기서 한가지 염두에 두고 글을 읽어야할 것이 있는데, JS엔진이 행하는 컴파일과정, 실행과정을 나누어서 생각을 해야한다. 컴파일은 말 그대로 실행전, 인터프리터가 코드를 실행할 수 있도록 준비해놓 단계이고 실행은 바이트코드로 이루어진 기계어를 실행하는 것이다. 호이스팅 ? 코드 실행 전, 컴파일 단계에서 메모리에 함수, 변수가 메모리에 저장되어(var한정, var는 선언과 동시에 초기화가 이루어짐으로서 메모리가 할당된다.) 선언문이 끌어올려지는 것처럼 표현되는 것. 선언과 할당을 분리해서 생각해야함. 선언부터 처리됨을 기억. Hoisting은 아래에 있는 것을 들어올린다라는 뜻이다. JS에서는 선언된 변수 및 함수를 코드의 상단으로 끌어올리는 것으로 얘기한다. 그럼 정말..
Chapter 4 호이스팅 a = 2; var a; console.log( a ); var a 가 a = 2보다 아래 선언되었으니 console.log에는 undefined라는 결과가 니올것을 예상하는데 호이스팅 에 의해 2가 나온다. 이전 1장에서 사용했던 예제를 보면 var a = 2; 컴파일러는 두가지를 처리한다고 얘기했었다. var a a가 선언되어있는지 확인하고 선언되있지 않으면 엔진에 선언을 요청한다. a = 2 a에 2를 대입하는 코드를 생성하여 엔진에 넘겨준다. 처음 코드는 컴파일러에 의해 아래와 같이 바뀐다. var a; a = 2; console.log( a ); 이렇게 선언문이 가장 상단으로 끌어올려지는것을 호이스팅 이라고 한다. 호이스팅은 스코프 내에서도 일어납니다. function..
- Total
- Today
- Yesterday