자바스크립트 - 화살표 함수: 초보자 가이드

안녕하세요, 미래의 자바스크립트 마법사 여러분! ? 오늘 우리는 화살표 함수의 세상으로 흥미로운 여정을 떠납니다. 프로그래밍에 새로운 사람이라면 걱정 마세요 - 저는 당신의 친절한 안내자가 되겠습니다. 단계별로 함께 진행하겠습니다. 이 튜토리얼이 끝나면, 디지털 로빈 후드처럼 화살표를 날릴 수 있을 것입니다! 시작해 보겠습니다!

JavaScript - Arrow Functions

화살표 함수는 무엇인가요?

친구에게 편지를 쓰는 것을 생각해 보세요. 긴 공식적인 편지를 쓸 수도 있고, 빠른 텍스트 메시지를 보낼 수도 있습니다. 화살표 함수는 그 텍스트 메시지와 같습니다 - 자바스크립트에서 함수를 작성하는 더 짧고 빠른 방법입니다.

traditional 함수와 함께 시작해 보고, 그것을 화살표 함수로 어떻게 변환할 수 있는지 보겠습니다:

// Traditional 함수
function greet(name) {
return "Hello, " + name + "!";
}

// 화살표 함수
const greetArrow = (name) => {
return "Hello, " + name + "!";
};

이렇게 더 깔끔해 보이죠? function 키워드가 사라지고, 멋진 작은 화살표 =>로 대체되었습니다. 우리의 함수가 스타일리시한 마이크로 메이크오버를 받은 것 같아요!

단일 문장 화살표 함수

이제 더 멋지게 만들어 보겠습니다. 화살표 함수에 단일 문장이 있을 때, 매우 압축할 수 있습니다:

const greetArrowCompact = (name) => "Hello, " + name + "!";

와우! 우리는 대괄호 {}return 키워드를 제거했습니다. 우리의 함수가 다이어트를 하고 모든 추가 문법 무게를 잃은 것 같아요!

여러 문장 화살표 함수

하지만 우리의 함수가 여러 가지 작업을 수행하고 싶다면 어떻게 되나요? 문제 없습니다! 화살표 함수를 여전히 사용할 수 있지만, 대괄호를 다시 추가해야 합니다:

const greetWithTime = (name) => {
const currentTime = new Date().getHours();
let greeting = "Good ";
if (currentTime < 12) greeting += "morning";
else if (currentTime < 18) greeting += "afternoon";
else greeting += "evening";
return `${greeting}, ${name}!`;
};

이 함수는 당신을 환영하는 것뿐만 아니라 시간을 확인하여 적절한 인사를 제공합니다. 코드에 있는 예의 바르고 있는 butler처럼입니다!

예제: 실제적인 적용

화살표 함수를 실제 예제로 적용해 보겠습니다. 우리는 간단한 계산기를 만들어 보겠습니다:

const calculator = {
add: (a, b) => a + b,
subtract: (a, b) => a - b,
multiply: (a, b) => a * b,
divide: (a, b) => (b !== 0 ? a / b : "Cannot divide by zero!"),
};

console.log(calculator.add(5, 3)); // 출력: 8
console.log(calculator.subtract(10, 4)); // 출력: 6
console.log(calculator.multiply(3, 7)); // 출력: 21
console.log(calculator.divide(15, 3)); // 출력: 5
console.log(calculator.divide(10, 0)); // 출력: Cannot divide by zero!

이렇게 깨끗하고 가독성이 좋네요! 각 연산은 화살표 함수로 되어 있어, 계산기 객체가 정리되고 깔끔해졌습니다.

매개변수 없는 화살표 함수

occasionally, 당신은 매개변수가 없는 함수가 필요할 수 있습니다. 화살표 함수는 이를 다루기에 적합합니다:

const sayHello = () => "Hello, world!";
console.log(sayHello()); // 출력: Hello, world!

이것은 항상 세상을 환영하는 함수처럼 보입니다!

매개변수 있는 화살표 함수

우리는 이전에 이를 본 적이 있지만, 분해해 보겠습니다:

const multiply = (a, b) => a * b;
console.log(multiply(4, 6)); // 출력: 24

여기서 ab는 매개변수입니다. 화살표 함수는 이 두 숫자를 곱합니다. 간단하고 우아합니다!

화살표 함수를 표현식으로 사용

화살표 함수는 표현식으로 사용할 수 있어, 일반 함수 표현식의 대체로 사용할 수 있습니다:

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

여기서 우리는 map 메서드 내에서 화살표 함수를 사용하여 배열의 각 숫자를 제곱합니다. 각 숫자에게 작은 파워업을 주는 것 같아요!

기본 매개변수 있는 화살표 함수

화살표 함수는 기본 매개변수를 가질 수도 있습니다, 일반 함수와 마찬가지로:

const greetWithDefault = (name = "Guest") => `Hello, ${name}!`;
console.log(greetWithDefault()); // 출력: Hello, Guest!
console.log(greetWithDefault("Alice")); // 출력: Hello, Alice!

이것은 누군가가 인수를 전달하지 않을 때 함수가 작동할 수 있도록 해주는 좋은 방법입니다. 예비 계획이 있는 것처럼!

화살표 함수의 이점

이제 화살표 함수를 사용해 보았으니, 왜 그들이 이렇게 훌륭한지 이야기해 보겠습니다:

  1. 간결한 문법: 코드를 짧고 읽기 쉽게 만듭니다.
  2. 隐含返回: 단일 문장 함수에서는 return 키워드를 작성할 필요가 없습니다.
  3. 词法 this 绑定: (고급 수업에서 다룰 것이지만, 큰 장점입니다!)
  4. 기능적 프로그래밍에 적합: map, filter, reduce와 같은 메서드와 잘 작동합니다.

화살표 함수의 제한 사항

하지만 기억하십시오, 큰 힘에는 큰 책임이 따릅니다. 화살표 함수는 항상 최고의 선택이 아닙니다:

  1. this 바인딩이 없음: 그들은 자신의 this를 가지지 않습니다, 일부 상황에서는 문제가 될 수 있습니다.
  2. 생성자로 사용할 수 없음: new 키워드를 사용하여 화살표 함수를 호출할 수 없습니다.
  3. arguments 객체가 없음: 화살표 함수는 arguments 객체를 가지지 않습니다.
  4. 메서드로 사용하기에 적합하지 않음: 객체 메서드로 사용할 때 예상치 못한 행동을 할 수 있습니다.

이제 화살표 함수의 문법을 요약하는 표를 제공하겠습니다:

유형 문법 예제
매개변수가 없음 () => { ... } const sayHi = () => { console.log("Hi!"); };
하나의 매개변수 param => { ... } const double = x => { return x * 2; };
여러 개의 매개변수 (param1, param2) => { ... } const add = (a, b) => { return a + b; };
단일 문장 param => expression const square = x => x * x;
객체 리터럴 반환 param => ({ key: value }) const createObj = x => ({ value: x });

그리고 여러분! 여러분의 자바스크립트 기술이 화살표 함수로 한 단계 업그레이드되었습니다. 연습이 완벽을 만드는 것처럼, 코드를 화살표로 바꾸고 가세요! 행복한 코딩! ??

Credits: Image by storyset