1.실행컨텍스트(Execution Context)
1.1 JS는 아무런 코드없이 실행해도 this, VariableObject, Scope chain새게 변수를 만듬
1.2 스코프 : 코드가 현재 싫애되는 환경, 맥락(context)를 의미
1.3 전역 실행 컨텍스트가 먼저 생기고 함수가 생길때마다 함수 실행 컨텍스트 새로 생성, 함수가 완료되면 삭제
1.3.1 글로벌 실행 컨텍스트의 this는 window
1.4 어떤 객체에 속한 메서드에는 this가 해당 객체를 부름
2. this
2.1 함수호출의 5가지
2.1.1 함수 호출, 메서드 호출, 생성자 호출, 간접호출(call, apply), 콜백함수
2.2 bind함수를 사용하면 this 변수에 원하는 값(객체든 변수든)을 갖도록 하는것
2.3 bind와 같이 this의 값을 동적으로 세팅하는 것을 dynamic binding이라고 함
2.4 화살표 함수의 this는 dynamic binding이 안되고 해당 함수만 가리킴
2.4.1 화살표 함수의 this : 호출된 함수를 둘러싼 실행 컨텍스트를 가리킴
2.4.2 일반 함수의 this : 새롭게 생성된 실행 컨텍스트를 가리킴 /
3. 함수는 일급 객체(first-class object)
3.1 함수와 함수가 사용하는 변수들이 저장된 공간 = 클로저
4. Rest Operator
4.1 함수들의 나머지 값들을 묶어서 지칭
4.2 ...을 사용해서 나머지들을 묶어서 객체로 저장
5. Spread Operator
5.1 객체를 펼치는 역할
5.2 iterable한 변수에 대해서 적용이 가능하다(iterable하지 않으면 에러가 발생)
5.3 객체나 배열 필드는 단순히 reference만 복사 (deep copy는 되지 않음)