모던 JS 토크: 화살표 함수

발행: (2026년 3월 15일 오후 07:19 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

개요

  • ES2015에서 도입된 새로운 문법
  • 일반 함수 표현식보다 짧음
  • this 값을 렉시컬하게 바인딩하여 컨텍스트 이해가 쉬워짐
  • 항상 익명 함수를 생성함

=> 로 작성되는 화살표 함수 표현식의 핵심 특징은 this 값을 렉시컬하게 바인딩한다는 점입니다.

기본 문법

전통적인 함수 표현식

const foo = function() {
  console.log(this);
};

foo();

화살표 함수 등가 표현

const foo = () => {
  console.log(this);
};

foo();

매개변수 규칙

  • 인수가 없을 때 – 괄호가 필요합니다.
  • 인수가 하나일 때 – 괄호는 선택 사항입니다.
// 인수가 없음
const foo = () => {
  console.log(this);
};

foo();

// 인수가 하나 (괄호 선택적)
const foo = value => {
  console.log(value);
};

foo('Hello!');

즉시 실행 화살표 함수

(() => {
  console.log('Hello!');
})();

주의: this 바인딩

화살표 함수는 주변 렉시컬 스코프에서 this를 상속받습니다. 객체 메서드로 사용할 경우 예상치 못한 결과가 발생할 수 있습니다.

const objA = {
  value: 'foo! foo!',
  sayHi: function() {
    console.log(this.value);
  }
};

objA.sayHi(); // → 'foo! foo!'

const objB = {
  value: 'bar! bar!',
  sayHi: () => {
    console.log(this.value);
  }
};

objB.sayHi(); // → undefined (또는 전역 객체의 값)

objA에서는 this가 객체 자체를 가리키지만, objB에서는 화살표 함수가 외부 this(대개 전역 객체)를 캡처하므로 this.valueobjB.value를 가리키지 않습니다.

Vue.js나 React와 같은 프레임워크를 사용할 때 this가 어떻게 바인딩되는지 이해하면 코드를 더 명확하고 유지보수하기 쉬워집니다.

참고 자료

0 조회
Back to Blog

관련 글

더 보기 »

JS에서 this 키워드

markdown 소개 JavaScript의 this 키워드는 주니어와 시니어 개발자 모두를 혼란스럽게 합니다. this를 이해하는 것은 함수가 정의된 위치에 따라 달라지는 것이 아니라…

this, call(), apply(), 그리고 bind()의 마법

안녕하세요, 독자 여러분 👋 – JavaScript 시리즈의 10번째 포스트에 다시 오신 것을 환영합니다. 파티에 있다고 상상해 보세요. 누군가 외칩니다, “이리 와!” 누가 대답할까요? 그것은…