함수 선언문 vs 함수 표현식
함수 선언문
1. 함수는 독자적인 구문 형태로 존재한다.
2. 선언문이 정의되기 전에도 호출할 수 있다.
전역 함수 선언문은 따라서 어느 위치에 있던 간에 사용이 가능하다.
>> 자바스크립트의 내부 알고리즘 때문에 가능한 일이다.
자바스크립트는 스크립트 실행 전, 준비 단계에서
전역에 선언된 함수 선언문을 찾고,
해당 함수를 생성한다.
즉 스크립트 실행 전 초기화 단계에서
함수 선언 방식으로 정의한 함수가 이미 생성된다는 말이다.
3. 함수 선언문은 함수가 선언된 코드 블럭{} 안에서만 유효하다.
함수 표현식
1. 표현식이나 구문 구성 내부에 생성된다. 할당연산자 =를 이용해서 만든다.
2. 실제 실행 흐름이 해당 함수에 도달 했을 때 함수를 생성한다.
그래서 그 구문에 실행 흐름이 도달하고, 함수가 생성된 이후부터
그 함수를 사용할 수 있다.
3. 코드 블럭 밖에서도 함수를 사용할 수 있다.
함수 표현식 방식에서는 함수가 표현식의 일부로 존재하게 되기 때문인가..?
이 부분은 더 알아봐야 할 듯 하다.
ko.javascript.info/function-expressions
'여니의 프로그래밍 study > JavaScript' 카테고리의 다른 글
자바스크립트 헷갈리는 부분 모음집 (0) | 2021.03.10 |
---|---|
2-17 화살표 함수 기본 (Javascript) (0) | 2021.03.10 |
함수 (Javascript) (0) | 2021.03.09 |
[VSCode] Extensions 추가하기 (0) | 2021.03.09 |
2-9 비교 연산자 (Javascript) (0) | 2021.03.08 |