오늘부터 시작된 4단계가 슬프긴 하지만 나는 열심히 내 할 일을 하면 되지!! 빨리 코로나 사라졌으면...! 🙏🏻 오늘은 당연히 알아야 하는 내용..?! 을 이렇게 늦게 정리하는 나를 반성하며..! ( 하지만 기록하는 습관은 좋은 거니까😉 )
✔️ let / const / var
let, const는 블록 스코프 (block scope)로 {...} 이러한 블록 내에서 접근이 가능하다. 반면 var는 함수 스코프(function scope)로 블록기준으로 스코프가 생기지 않기 때문에 블록 밖에서도 접근이 가능하다. 또한 let, const, var는 재할당과 재선언이 가능 여부에서도 차이점을 가진다.
let : 재선언 불가능, 재할당 가능
const : 재선언, 재할당 불가능
var : 재선언, 재할당 가능
✔️ 실행 컨텍스트 (Execution Context)
( 실행컨텍스트는 TIL에 정리하긴 길어서 노션에 자세히 정리하고 여기에는 요약만 적겠다 )
실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경이다. 자바스크립트 코드를 실행 시 자바스크립트 엔진의 스택에 쌓이면서 실행환경을 가지게 된다. 실행 가능한 코드는 아래와 같으며 eval코드는 잘 안 쓰이고 지양한다고 한다.
- 전역 코드 : 전역 영역에 존재하는 코드
- 함수 코드 : 함수 내에 존재하는 코드
- Eval 코드 : eval 함수로 실행되는 코드
우선 코드를 처음 실행하는 순간 모든 것을 포함하는 전역 컨텍스트가 생긴다. 그리고 이 전역 컨텍스트는 페이지가 종료될 때까지 유지되며 모든 컨텍스트가 사라지면 전역 컨텍스트도 사라진다. 그리고 함수 함수를 호출할 때마다 함수 컨텍스트가 하나씩 생긴다. 밑은 컨텍스트의 원칙 네 가지이다.
- 전역 컨텍스트 하나 생성 후, 함수 호출 시마다 컨텍스트가 생긴다.
- 컨텍스트 생성 시 컨텍스트 안에 변수 객체(arguments, 변수 선언, 함수 선언...), scope chain, this가 생성된다.
- 컨텍스트 생성 후 함수가 실행되는데, 사용되는 변수들은 변수 객체 안에서 값을 찾고, 없다면 스코프 체인을 따라 올라가며 찾는다.
- 함수 실행이 마무리되면 해당 컨텍스트는 사라진다.(클로저 제외) 페이지가 종료되면 전역 컨텍스트가 사라진다.
참고:
'🔖 Daily > Today I Learned🌱' 카테고리의 다른 글
[14JUL, 2021] TIL (0) | 2021.07.15 |
---|---|
[13JUL, 2021] TIL (0) | 2021.07.14 |
[10-11JUL, 2021] TIL (0) | 2021.07.12 |
[09JUL, 2021] TIL (0) | 2021.07.10 |
[06JUL, 2021] TIL (0) | 2021.07.07 |