이번 주제는 자바스크립트에서 함수 선언식과 함수 표현식에 관한 주제이다.

 

함수 선언식 😊

함수 이름이 명시 되어 있어야 함

함수 이름으로 함수를 호출

함수 호이스팅 발생

세미콜론 사용 X

 

예시 👇🏻👇🏻

example1(); // 함수 호출 (호이스팅)

function example1() {
  console.log('Hi');
} // 함수 선언

 

함수 표현식 😊

함수 리터럴로 생성한 함수를 변수에 할당

함수의 참조값이 변수로 저장

변수 호이스팅 발생

세미콜론 사용 O

 

예시 👇🏻👇🏻

const example2 = function () { console.log('Hi') };
// 변수 example2에 함수 할당

example2(); // 함수 호출

 

차이점😊

함수 선언문으로선언된 함수는 함수 호이스팅 발생

함수 표현식으로 선언된 함수는 변수 호이스팅 발생하고 undefined로 초기화

    -> 함수가 정의되기 전에 함수 호출 X

함수 호이스팅은 함수를 사용하기 전에 반드시 함수를 선언해야 되는 규칙을 무시하므로 함수 표현식 권장!

 

예시 👇🏻👇🏻

example1(); // 'Hi'
example2(); // undefined

function example1(){ console.log('Hi') }
var example2 = function(){ console.log('Hi') };

 

 

마무리 😊

이번 주제 함수 선언식과 표현식에 관하여 알아보았다.

'JavaScript > JavaScript 공부' 카테고리의 다른 글

렉시컬 스코프  (0) 2022.12.18
this  (0) 2022.12.10
Array 메서드  (0) 2022.11.27
Hoisting  (0) 2022.11.20