TDZ (Temporal Dead Zone)
TDZ를 알기위해서는 우선 변수의 생성 3단계를 알아야한다..
[변수생성의 3단계]
선언-> 초기화 -> 할당
선언 : 실행 컨텍스트에 변수 객체를 등록
초기화 : 변수객체에 등록 된 변수를 위해 메모리에 공간 확보 (undefiend로 초기화)
할당 : undefiend로 초기화 된 변수에 실제 값 할당
var와 달리 let과 const는 변수를 선언전에 호출하면 ReferenceError가 난다.
var는 변수를 선언과 동시에 초기화하기 때문에 에러가 안난다.
let 과 const도 호이스팅이 되지만 선언만 될 뿐 초기화는 해당 코드 줄에 도착해야 되기 때문에 TDZ가 발생하는 것이다.
결론 : var 이제 쓰지말자.
호이스팅 : 엔진의 실제 동작 방식 대신에 자바스크립트 엔진은 식별자들을 최상단으로 끌어올려놓은 다음, 실제 코드를 실행한다
실행 컨텍스트 : 파일을 쭉 한번 훑어 보고 실행 환경 미리 준비하는 것
변수를 만들면 자바스크립트엔진이 변수를 쓰기 위해서 실행 컨텍스트에 변수를 등록을 한다.
선언, 초기화(메모리에 공간확보), 할당(공간에 값을 넣어주는것)을 거쳐 등록한다.
리덕스 미들웨어 청크
미들웨어는 액션이 디스패치 된 다음 리듀서에서 액션을 처리하기 전에 액션을 받아와서 액션을 취소시키거나 다른 종류의 액션을 추가적으로 디스패치하는등 업데이트 이전에 추가적인 작업을 할 수 있도록 도와주는 역할이다.
즉 리듀서 내의 어떤 로직이 실행되기 사이의 중간다리 역할을 해줄 함수들을 작성하는 공간
'
s3 버킷에 배포한 뒤, 어떤도메인.com이 아닌 어떤도메인.com/login 등 페이지로 이동하면 왜 오류가 날까요?