리액트 배우고 이해하기 - 실전 튜토리얼

자바스크립트의 화살표 함수 - 효율적인 활용

튜토리얼의 모든 비디오 리액트 배우고 이해하기 - 실전 튜토리얼

기능JavaScript의 핵심입니다. 예전에는 function 키워드의 사용에 종속되어 있었지만, ES6는 새롭고 우아한 문법인 화살표 함수를 가져왔습니다. 이 새로운 구문은 코드를 더 짧게 만들뿐만 아니라 this 컨텍스트와 관련된 몇 가지 문제도 해결합니다. Arrow 함수에 대해 알아야 할 모든 것을 이 안내서에서 알게 될 것입니다.

주요 인사이트

  • Arrow 함수는 기존 함수에 비해 더 간결한 구문을 제공합니다.
  • 자체 this 컨텍스트가 없어서 콜백 함수에서 특히 유용합니다.
  • 함수가 하나의 표현식만 반환하는 경우 중괄호와 return 문을 제거할 수 있습니다.

Arrow 함수 소개

Arrow 함수는 코드를 더 가독성 있고 간결하게 만들기 위해 일반적으로 사용됩니다. function 대신에 새로운 구문을 사용하여 함수를 더 짧게 선언할 수 있습니다.

자바스크립트의 화살표 함수 - 효율적인 활용

Arrow 함수가 무엇인지 이해하려면 전통적인 함수를 시작점으로 사용할 수 있습니다. function-키워드로 함수를 선언하면 보통 좀 더 길고 우아하지 않습니다. 다음은 JavaScript에서 표준 함수의 예입니다:

function doIt() {
    console.log("Doing it");
}

이것이 Arrow 함수로 넘어가기 전의 기초입니다.

단계 1: Arrow 함수 선언

function 키워드 대신에 매개변수를 괄호 안에 넣고 화살표를 사용한 후에 함수 본문을 작성하는 방식으로 Arrow 함수를 선언할 수 있습니다. 이전 함수가 Arrow 함수로 어떻게 보이는지 여기에 있습니다:

const doIt = () => {
    console.log("Doing it");
};

보다시피 구문이 훨씬 더 간단합니다. 첫 번째 시도 이후에 함수가 제대로 작동하는지 확인할 수 있습니다.

단계 2: Arrow 함수와 배열 사용

Arrow 함수를 배열과 사용할 때 또 다른 큰 이점은 나타납니다. 예를 들어 숫자 배열이 있고 특정 숫자의 위치를 찾고자 한다고 가정해봅시다. findIndex 메소드를 사용하여 인덱스를 찾아봅시다:

const numbers = [2, 3, 4, 5];
const index = numbers.findIndex((element) => element === 3);
console.log(index);

Arrow 함수는 코드의 가독성을 크게 향상시키고 추가적인 function 키워드의 필요성을 줄입니다.

단계 3: Arrow 함수 축약

Arrow 함수가 하나의 표현식만을 포함하는 경우 중괄호와 return 키워드를 생략할 수 있습니다. findIndex 함수를 더 축약한 경우는 다음과 같습니다:

const index = numbers.findIndex(element => element === 3);

이는 단지 더 짧을 뿐만 아니라 더 우아합니다. 함수를 테스트하고 여전히 정상적으로 작동하는지 확인할 수 있습니다.

단계 4: this 키워드 다루기

Arrow 함수의 주요 장점 중 하나는 this 컨텍스트를 처리하는 것입니다. 전통적인 함수에서는 특히 콜백으로 사용될 때 this가 예측할 수 없게 됩니다. 그러나 Arrow 함수는 this를 정의된 컨텍스트에 바인딩합니다.

다음 예제를 살펴보세요:

const obj = {
    text: "Text",
    print: function() {
        console.log(this.text);
    }
};

obj.print(); // "Text"를 출력

그러나 setTimeout과 일반 함수를 함께 사용하면 this 컨텍스트가 변경됩니다:

setTimeout(function() {
    console.log(this.text);
}, 1000); // undefined를 출력

setTimeout 내부의 Arrow 함수를 사용하면 전통적인 함수와 동일한 결과를 얻으면서도 컨텍스트를 유지할 수 있습니다:

setTimeout(() => {
    console.log(this.text);
}, 1000); // "Text"를 출력

단계 5: this 할당 유지

this를 변수에 바인딩하여 접근할 수 있도록 하는 것도 가능하지만, 이 패턴은 Arrow 함수를 사용하는 것보다 덜 우아한 경우가 많습니다.

const self = this;
setTimeout(function() {
    console.log(self.text);
}, 1000);

화살표 함수의 이점

  • 기존 함수 선언에 비해 더 짧고 우아합니다.
  • 콜백 함수에서의 사용이 간단해지도록 자체 this 컨텍스트가 없습니다.
  • 구문을 통해 코드를 훨씬 더 가독성 있게 만들 수 있습니다.

요약

화살표 함수는 JavaScript 함수를 효율적으로 선언하는 편리한 방법을 제공합니다. 새로운 구문을 통해 가독성뿐만 아니라 this 컨텍스트의 처리도 크게 간편해집니다. 콜백 함수나 간단한 함수 표현이 필요한 경우 화살표 함수를 사용해야 합니다.

자주 묻는 질문

화살표 함수란 무엇인가요?화살표 함수란 ES6에서 도입된 JavaScript 함수에 대한 더 짧은 구문입니다.

언제 화살표 함수를 사용해야 하나요?콜백 시나리오 또는 익명 함수가 필요한 경우에 주로 화살표 함수를 사용하세요.

화살표 함수의 this 컨텍스트에 대한 이점은 무엇인가요?화살표 함수는 주변 컨텍스트에 this를 바인딩하므로 일반 함수의 예상치 못한 동작을 막아줍니다.