엘리스 SW 엔지니어 트랙/TIL

[엘리스 SW 엔지니어 트랙 2기 / TIL] Week 03 - 스코프, 실행 컨텍스트, 클로져, this

wookhyung 2022. 4. 28. 17:06
728x90

1. 오늘 공부한 내용  📝

  • Scope : Global / Local
  • 실행 컨텍스트(Execution Context)
    • 실행 가능한 코드가 실행되기 위해 필요한 환경 (객체 형태)
      • 변수, 함수, 스코프(scope), this
    • 코드를 형상화하고 구분하는 추상적 개념
    • 코드가 실행 시 생성되고, 완료되면 소멸
"Context": {
	variableObject: {
    	arguments: null,
        variable: [...],
    },
    scopeChain: ["해당 되는 스코프"],
    this: "함수가 호출된 형태에 따라 할당"
 }
  • Lexical Scope : 함수 호출이 아닌 선언한 곳을 기준으로 스코프를 결정
  • Scope Chain : 스코프의 레퍼런스가 차례로 저장된 리스트, 함수가 정의될 때를 기준으로 만들어짐
  • 호이스팅(Hoisting) : 코드 실행 전(생성 단계), 변수/함수 선언(메모리 공간 확보)이 해당 스코프의 최상단으로 끌어올려진 것 같은 현상
var name = undefined;
function printName() {
	name = undefined;
    console.log(name);
    
    name = "Bob";
    console.log(name);
}

name = "John";
printName();
  • this가 가리키는 것
  • 클로저(Closure)
    • 함수와 그 함수가 선언 됐을 때의 렉시컬(Lexical) 환경과의 조합
    • 자신이 선언될 당시의 환경을 기억하는 함수
  • map, forEach, filter, reduce

2. 어려웠던 내용  🤯

클로져, this....... 아직은 잘 이해가 안된다.

3. 궁금한 내용 / 부족했던 내용  🧐

4. 느낀 점 🤔

클로져, 스코프 체인, 실행 컨텍스트, this 이 키워드들에 대해선 다시 복습을 해봐야 될 것 같다. 실습 강의 코치님께서는 어려운게 당연한 내용이라고 하니까 천천히 학습해보자..