js는 코드 컨텍스트 라는 특정 영역안에서 코드를 실행하고 있었음
자바스크립트 코드가 실행될 때 필요한 환경을 제공해주는 객체
console.log도 메서드이기 때문에 실행 컨텍스트 생성됨
<aside> 💡 js 코드를 실행시키는 스택 자료구조
</aside>
실행 버튼누르면 콜스택에 실행 컨텍스트라는 영역을 만듦
⇒ 전역 실행 컨텍스트라고 부름
하나의 전역 실행 컨텍스트 안에서 코드가 실행됨
실행 끝나면 실행 컨텍스트 제거
모든 컨텍스트가 사라지면 실행 종료
전역 실행 컨텍스트 안에는 record, outer 라는 두 개의 개체가 있음
모든 컨텍스트가 동일하게 가짐
var uname = "soy"
console.log(uname)
console.log(uname)
var uname = "soy"
// undefined
에러가 아닌 undefined 출력
생성 단계에서 uname이 undefined가 되고 생성 단계 종료
실행 단계에서 생성 단계에서 기록된 값을 기반 코드를 실행
에러 발생 없이 undefined 출력
만약 let, const로 선언되면 에러 발생
outer: 위에서 아래로 컨텍스트 연결