함수 선언식 vs 함수표현식 vs 화살표 함수

이동주·2022년 5월 27일
0

1. 함수선언식

function addNum (x, y) {
	console.log(x + y);
}

=> 어디서든 호출이 가능(호이스팅 발생)
=> 세미콜론 사용 X

호이스팅

자바스크립트 엔진이 script 태그를 만나면 자바스크립트 파일을 먼저 쭉 읽으면서 선언된 변수와 함수를 메모리에 저장. 이 과정이 끝나면 코드가 위에서 부터 차례대로 실행.
즉 코드에서 함수나 변수를 코드의 하단부에 선언했다고 하더라도 코드의 상단부에서 함수를 호출(실행) 할 수 있음.

2. 함수표현식

const addNum = function (x, y) {
	console.log(x + y);
};

=> 함수를 생성한 코드 이후부터 호출 가능(호이스팅 X)
=> 세미콜론 사용 O

3. 화살표함수

const addNum = (x, y) => {
	console.log(x + y);
};

=> 함수를 생성한 코드 이후부터 호출 가능(호이스팅 X)
=> 세미콜론 사용 O

함수표현식과 화살표함수의 차이점

  • 화살표함수는 yield 사용 불가능
    : 제너레이터 함수 사용 못함

  • 화살표함수는 생성자 사용 불가능(new 불가능)

const Person = (name, age) => { this.name = name; this.age = age };
const tom = new Person("Tom", 18);
profile
안녕하세요 이동주입니다

0개의 댓글