여니의 프로그래밍 study/JavaScript

2-16 함수 표현식과 함수 선언문(Javascript)

여니's 2021. 3. 10. 12:25

함수 선언문 vs 함수 표현식


함수 선언문

1. 함수는 독자적인 구문 형태로 존재한다.

 

2. 선언문이 정의되기 전에도 호출할 수 있다.

전역 함수 선언문은 따라서 어느 위치에 있던 간에 사용이 가능하다.

 

>> 자바스크립트의 내부 알고리즘 때문에 가능한 일이다. 

자바스크립트는 스크립트 실행 전, 준비 단계에서 

전역에 선언된 함수 선언문을 찾고,

해당 함수를 생성한다.

 

즉 스크립트 실행 전 초기화 단계에서

함수 선언 방식으로 정의한 함수가 이미 생성된다는 말이다.

 

3. 함수 선언문은 함수가 선언된 코드 블럭{} 안에서만 유효하다.

 


함수 표현식 

1. 표현식이나 구문 구성 내부에 생성된다. 할당연산자 =를 이용해서 만든다.

 

2. 실제 실행 흐름이 해당 함수에 도달 했을 때 함수를 생성한다.

그래서 그 구문에 실행 흐름이 도달하고, 함수가 생성된 이후부터

그 함수를 사용할 수 있다.

 

3. 코드 블럭 밖에서도 함수를 사용할 수 있다.

함수 표현식 방식에서는 함수가 표현식의 일부로 존재하게 되기 때문인가..?

이 부분은 더 알아봐야 할 듯 하다.

 

ko.javascript.info/function-expressions

 

함수 표현식

 

ko.javascript.info