본문 바로가기
Javascript

JavaScript 화살표 함수로 코드 효율성 높이기

by Status Code 2024. 2. 6.

간단한 소개

JavaScript에서 화살표 함수는 간결한 문법으로 함수를 정의하는 방법입니다. 전통적인 함수 표현식을 더 짧은 형태로 작성할 수 있게 해주며, this의 바인딩 방식도 다릅니다.

 

기본 화살표 함수 문법

매개변수가 없는 경우

const greet = () => console.log('Hello, World!');
greet(); // 출력: Hello, World!

매개변수가 하나인 경우

const square = x => x * x;
console.log(square(5)); // 출력: 25

매개변수가 여러 개인 경우

const add = (a, b) => a + b;
console.log(add(2, 3)); // 출력: 5

this 바인딩 이해하기

일반 함수에서의 this

function Person() {
  this.age = 0;

  setInterval(function growUp() {
    this.age++;
  }, 1000);
}
const p = new Person();

위 코드에서 setInterval 내의 thisPerson 객체를 가리키지 않습니다.

 

 

화살표 함수에서의 this

function Person() {
  this.age = 0;

  setInterval(() => {
    this.age++;
  }, 1000);
}
const p = new Person();

화살표 함수를 사용하면, setInterval 내의 thisPerson 객체를 정확히 가리킵니다.

 

 

화살표 함수에서의 반환 값

암시적 반환

const getFullName = (firstName, lastName) => `${firstName} ${lastName}`;
console.log(getFullName("John", "Doe")); // 출력: John Doe

 

 

객체 리터럴 반환

const getPerson = (name, age) => ({ name: name, age: age });
console.log(getPerson("John", "30")); // 출력: { name: 'John', age: '30' }

 

 

고급 화살표 함수 사용법

배열 메서드와 함께 사용

const numbers = [1, 2, 3, 4];
const squares = numbers.map(number => number * number);
console.log(squares); // 출력: [1, 4, 9, 16]

 

즉시 실행 함수 표현식 (IIFE)

((name) => console.log(`Hello, ${name}!`))('John'); // 출력: Hello, John!

 

 

화살표 함수 사용 시 주의사항

arguments 객체에 대한 접근

화살표 함수는 자체 arguments 객체가 없습니다. 대신, rest 매개변수를 사용할 수 있습니다.

const concat = (...args) => args.join('');
console.log(concat('I ', 'love ', 'JavaScript')); // 출력: I love JavaScript

 

 

실용적인 예제 및 팁

고차 함수에서의 화살표 함수

const people = [
  { name: "John", age: 25 },
  { name: "Jane", age: 28 },
  { name: "Jack", age: 30 }
];

const names = people.map(person => person.name);
console.log(names); // 출력: ["John", "Jane", "Jack"]

 

화살표 함수는 JavaScript에서 함수를 보다 간결하고 효율적으로 작성할 수 있는 강력한 방법을 제공합니다. 특히 this 바인딩의 차이점을 이해하는 것은 화살표 함수를 올바르게 사용하는 데 중요합니다. 여러분의 코드에 화살표 함수를 적극적으로 활용하여 더 깔끔하고 관리하기 쉬운 코드를 작성해 보세요.

 

 

댓글