함수와 함수 호출의 차이

 

  • 함수의 호출 : 함수이름()

함수의 호출의 결과는 함수 자리에 바로 리턴값을 대입하는 것

 

  • 함수이름

함수를 실행하는 것

 

예시 코드

 

함수의 변수 접근과 호출 스택

 

JS의 실행 순서

위 -> 아래

왼쪽 -> 오른쪽

 

  • 함수의 호출 : 함수가 호출 될 때마다 호출 스택 생성

 

stack : 먼저 들어온 것이 나중에 나감 : FILO

 

스코프체인

변수나 함수가 코드 내에서 어떻게 검색되고 접근될 수 있는지를 결정하는 메커니즘

 

블록 단위 { } 

  1. 지역 스코프(Local Scope): 함수 내에서 선언된 변수는 해당 함수 내에서만 접근 가능합니다. 이러한 변수는 지역 스코프 또는 함수 스코프에 속합니다.
  2. 상위 스코프(Upper Scope): 변수가 현재 스코프에서 찾아지지 않으면, 스코프 체인을 따라 상위 스코프로 이동하여 변수를 검색합니다. 이 과정은 최상위 스코프(전역 스코프)에 도달할 때까지 계속됩니다.
  3. 전역 스코프(Global Scope): 최상위 스코프로, 여기에서 선언된 변수는 어디서든 접근할 수 있습니다.
  4. 클로저(Closure): 내부 함수가 외부 함수의 스코프에 접근할 수 있는 경우를 클로저라고 합니다. 이것은 스코프 체인을 통해 가능해집니다.

호이스팅

함수 및 변수가 밑에서 선언 되어도 위에서 선언된 것 처럼 동작

 

호이스팅은 가능한 피하는 것이 코드 가독성, 유지보수성 을 확보할 수 있다.

 

var 는 선언 및 초기화가 동시에 진행 됨으로 호이스팅이 불가능