간단한 소개
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
내의 this
는 Person
객체를 가리키지 않습니다.
화살표 함수에서의 this
function Person() {
this.age = 0;
setInterval(() => {
this.age++;
}, 1000);
}
const p = new Person();
화살표 함수를 사용하면, setInterval
내의 this
는 Person
객체를 정확히 가리킵니다.
화살표 함수에서의 반환 값
암시적 반환
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
바인딩의 차이점을 이해하는 것은 화살표 함수를 올바르게 사용하는 데 중요합니다. 여러분의 코드에 화살표 함수를 적극적으로 활용하여 더 깔끔하고 관리하기 쉬운 코드를 작성해 보세요.
'Javascript' 카테고리의 다른 글
자바스크립트 기본: 웹 페이지를 동적으로 만드는 프로그래밍 언어의 기초. (0) | 2024.01.12 |
---|---|
JavaScript 객체에 대한 실무 활용예시 (1) | 2024.01.10 |
JavaScript 할당 연산자에 대해서. (0) | 2024.01.03 |
JavaScript 연산자 종류와 활용법 (0) | 2024.01.02 |
자바스크립트 데이터 타입: 이론부터 실습까지 (2) | 2024.01.02 |
댓글