
식별자 정보를 실행 컨텍스트에 수집한다.
수집 대상은 식별자, 함수 자체, var로 선언된 변수 등이 있다.
수집 방법은 처음 부터 끝까지 훑어 가며 수집한다.
JS엔진이 함수 안에서 변수들을 수집하는 과정이다.식별자 정보를 함수 최상단으로 올려 수집한다.- 변수 정보 수집과정을 이해하기 쉽게 설명한 가상의 개념이다.
console.log(name); // undefined
var name = "초등학생";
위 코드를 보면 변수가 선언되기 전에 console.log(name); 을 입력했는데 오류가 나지 않고 undefined가 출력된 모습을 볼 수 있습니다.
왜냐하면 자바스크립트가 var name을 미리 기억하고 있기 때문입니다.
sayHello();
function sayHello() {
console.log("안녕!"); //안녕!
}
이 코드도 보면 함수가 선언되기 전에 호출을 했는데 정상적으로 실행되는 현상을 볼 수 있습니다.
왜냐하면 함수가 선언될 것을 미리 기억하고있기 때문입니다.
이처럼 자바스크립트가 미리 식별자 정보를 기억해주면 우리는 코드의 흐름에 따라 코드를 읽을 수 있게됩니다.
또한 식별자 정보를 미리 함수가 콜스택에 쌓이기 전에 메모리에 올려 준비합니다.
호이스팅을 통해 자바스크립트는 실행 중간에 "아직 선언되지 않은 변수나 함수가 있다!"라는 에러를 방지할 수 있게 된다.
다음에는 LE에 담겨있는 outer에 대해 알아볼 것 이다.
오늘은 특강이나 과제가 없는 평온한 하루였다. 물론 공부할 것들이 많았다. 먼저 강의를 1.5배속으로 처음부터 다시 보며 복습했다. 중요한 부분은 중간중간 멈춰가며 코드를 실행해보았다. 1주차와 2주차는 기초적인 내용이라 제법 빨리 끝났다. 하지만 3주차부터 난이도가 올라가기 때문에 1.25배속으로 볼 것이다.
두 번째로 한 일은 튜터님께서 fetch에 대해 복습을 해보라고 하셔서 사전캠프때 봤던 강의에서 fetch부분을 다시 봤다. 오랜만에 봐서그런지 기억이 가물가물해서 반복연습을 했다.
달리기반 실습을 진행하면서 느꼈지만 강의로 배운 것을 가지고 실제 코드에 어떤 개념을 어떻게 이용하는지가 중요하다. 실제 코드에 적용하기 위해서는 개념에 대한 코드를 반복적으로 연습한 패턴을 잘 적용시키는 것이 포인트다. 다음 실습 때는 문제를 보고 당황하기 전에 어떤 개념을 적용해야하는지 보고 공부했던 내용을 되짚어보며 해결해낼 것 이다.
앞으로 개인과제도 주어지게되면 정신없는 하루가 되겠지만 이악물고 버틸 것 이다.