Skip to content
On this page

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

Title
함수 선언 vs 함수 표현식 vs 화살표 함수
Category
JavaScript
Tags
Aliases
함수 선언 vs 함수 표현식 vs 화살표 함수
Related
Created
2 years ago
Updated
last year
js
const greet = function (who) {
	return `Hello, ${who}!`;
};

// vs

const greet = (who) => {
	return `Hello, ${who}!`;
};
const greet = function (who) {
	return `Hello, ${who}!`;
};

// vs

const greet = (who) => {
	return `Hello, ${who}!`;
};

this

  • 일반 함수에서 this는 동적이다
  • 화살표 함수에서 this를 바인딩하지 않는다.
    • 항상 외부 함수의 this 값과 같다. (Lexical Scope)

생성자

  • 일반 함수는 객체를 생성하는 생성자로 사용할 수 있다.
  • 화살표 함수는 생성자로 사용할 수 없다.

arguments 객체

  • 일반 함수는 함수 안에서 arguments 객체를 통해 매개변수(parameter) vs 인자(argument) 정보를 볼 수 있다.
  • 화살표 함수는 this와 마찬가지로 arguments 객체가 없다.
    • 외부 함수의 arguments와 같다. (Lexical Scope)

References

Released under the MIT License.