자바스크립트 - 화살표 함수: 초보자 가이드
안녕하세요, 미래의 자바스크립트 마법사 여러분! ? 오늘 우리는 화살표 함수의 세상으로 흥미로운 여정을 떠납니다. 프로그래밍에 새로운 사람이라면 걱정 마세요 - 저는 당신의 친절한 안내자가 되겠습니다. 단계별로 함께 진행하겠습니다. 이 튜토리얼이 끝나면, 디지털 로빈 후드처럼 화살표를 날릴 수 있을 것입니다! 시작해 보겠습니다!
화살표 함수는 무엇인가요?
친구에게 편지를 쓰는 것을 생각해 보세요. 긴 공식적인 편지를 쓸 수도 있고, 빠른 텍스트 메시지를 보낼 수도 있습니다. 화살표 함수는 그 텍스트 메시지와 같습니다 - 자바스크립트에서 함수를 작성하는 더 짧고 빠른 방법입니다.
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
여기서 a
와 b
는 매개변수입니다. 화살표 함수는 이 두 숫자를 곱합니다. 간단하고 우아합니다!
화살표 함수를 표현식으로 사용
화살표 함수는 표현식으로 사용할 수 있어, 일반 함수 표현식의 대체로 사용할 수 있습니다:
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!
이것은 누군가가 인수를 전달하지 않을 때 함수가 작동할 수 있도록 해주는 좋은 방법입니다. 예비 계획이 있는 것처럼!
화살표 함수의 이점
이제 화살표 함수를 사용해 보았으니, 왜 그들이 이렇게 훌륭한지 이야기해 보겠습니다:
- 간결한 문법: 코드를 짧고 읽기 쉽게 만듭니다.
-
隐含返回: 단일 문장 함수에서는
return
키워드를 작성할 필요가 없습니다. -
词法
this
绑定: (고급 수업에서 다룰 것이지만, 큰 장점입니다!) -
기능적 프로그래밍에 적합:
map
,filter
,reduce
와 같은 메서드와 잘 작동합니다.
화살표 함수의 제한 사항
하지만 기억하십시오, 큰 힘에는 큰 책임이 따릅니다. 화살표 함수는 항상 최고의 선택이 아닙니다:
-
this
바인딩이 없음: 그들은 자신의this
를 가지지 않습니다, 일부 상황에서는 문제가 될 수 있습니다. -
생성자로 사용할 수 없음:
new
키워드를 사용하여 화살표 함수를 호출할 수 없습니다. -
arguments
객체가 없음: 화살표 함수는arguments
객체를 가지지 않습니다. - 메서드로 사용하기에 적합하지 않음: 객체 메서드로 사용할 때 예상치 못한 행동을 할 수 있습니다.
이제 화살표 함수의 문법을 요약하는 표를 제공하겠습니다:
유형 | 문법 | 예제 |
---|---|---|
매개변수가 없음 | () => { ... } |
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