Javascript 문법 - 함수 2번째

백엔드·2020년 11월 14일
0

Javascript 문법

목록 보기
7/16

📝 스코프와 실행컨텍스트란?


두 개념을 암기하는 것은 의미가 없다

스코프와 실행 컨택스트의 관계를 생각하면서 코드를 읽어보자

🕶 코드 해설

🎬 #1

태초에 전역 스코프가 있었다.
그냥 광할한 우주와 같은 빈공간이다.
그곳에서 어느 순간 짠하고 빅뱅처럼 전역 컨텍스트가 생성된다.
그렇게 생겨난 전역 컨텍스트는 호이스팅과 this 바인딩을 처리한다.
(전역 실행 컨텍스트 생성[ GLOBAL ] )

🎬 #2

  • 전역 실행컨텍스트 생성.

  • 실행 컨택스트가 생성될 때, this 바인딩과 호이스팅이 이뤄진다.

    ❗ 그러므로 호이스팅이 이뤄져 변수와 함수가 선언된다.

  • 스코프정의될 때 결정된다.

    ❗ 그러므로 함수의 스코프도 결정된다. [ GLOBAL > outer ]

  • 호이스팅 끝나고 위에서 부터 차례대로 읽어나간다

🔄 같은 원리로 코드가 실행된다.

📌 inner() 에서 console.log(a)가 undefined인 이유

✔✔ inner 함수를 호출하면 inner 실행 컨텍스트가 생성된다.

실행컨텍스트로 호이스팅이 되어 변수 a가 선언된다.
 
이때의 변수 a의 값은 undefined이다.
 
이후 차례대로 로직을 진행하여 console.log(a)가 실행되어,

undefined가 출력되고, 그 후 변수 a에 3이 할당 된다.

ref

   
profile
백엔드 개발자

0개의 댓글

관련 채용 정보