자바스크립트 - 함수 표현식: 초보자 가이드
안녕하세요, 미래의 자바스크립트 마법사 여러분! 함수 표현식의 세계로 인도해드리게 되어 기쁩니다. 프로그래밍을 가르쳐온 지 오래된 저로서는, 함수를 이해하는 것은 자전거 타는 것을 배우는 것과 같다고 말씀드릴 수 있습니다. 한 번 배우면 잊지 않을 것이며, 상상도 못한 곳으로 데려다줄 것입니다!
함수 표현식이란?
먼저 간단한 비유로 시작해보겠습니다. 일반 함수는 완제 식사라면, 함수 표현식은 자신이 요리하는 요리입니다. 재료(파라미터)와 레시피(함수 본문)에 대한 더 많은 제어력을 가집니다.
함수 표현식은 단순히 함수를 표현하는 방법으로, 다른 표현式中의 일부로 정의됩니다. "Hey JavaScript, 이 멋진 코드 패키지가 있어, 변수에 저장하거나 어딘가에 전달하고 싶어요."라고 말하는 것과 같습니다.
문법
함수 표현식의 기본 문법을 살펴보겠습니다:
let myFunction = function(parameters) {
// 함수 본문
return result;
};
여기서 우리는 myFunction
이라는 변수를 생성하고 그에 익명 함수를 할당하고 있습니다. 이름이 없던 사람에게 이름표를 달아주는 것과 같은 것입니다!
함수 표현식의 예제
예제 1: 간단한 인사
우리는 친절한 "Hello, World!" 함수로 시작해보겠습니다:
let greet = function() {
console.log("Hello, World!");
};
greet(); // 출력: Hello, World!
이 예제에서 우리는 파라미터가 없는 함수 표현식 greet
를 생성했습니다. greet()
을 호출하면, 우리의 환영 메시지를 콘솔에 로그합니다.鹦鹉 한 마리에게 문구를 가르치는 것과 같아요 - 한 번 가르치면 언제든지 말하게 할 수 있습니다!
예제 2: 두 수를 더하는 함수
이제 두 수를 더하는 함수를 생성해보겠습니다:
let add = function(a, b) {
return a + b;
};
console.log(add(5, 3)); // 출력: 8
여기서 우리의 add
함수는 두 개의 파라미터 a
와 b
를 받아 그들의 합을 반환합니다. 작은 계산기 하나를 변수에 저장하는 것과 같습니다!
예제 3: 화살표 함수를 사용한 함수 표현식
자바스크립트는 화살표 함수라는 더 짧은 문법을 사용하여 함수 표현식을 작성할 수도 있습니다. "u" 대신 "you"를 쓰는 것과 같아요 - 짧지만 똑같은 뜻입니다:
let multiply = (a, b) => a * b;
console.log(multiply(4, 6)); // 출력: 24
이 화살표 함수 multiply
는 두 개의 파라미터를 받아 그들의 곱을 반환합니다. 단일 줄 함수의 경우 return
을 작성할 필요가 없습니다.
함수 표현식 사용 시기
함수 표현식은 매우 다재다능합니다. 다음과 같은 상황에서 특히 유용합니다:
- 콜백 함수로 사용할 때
- 조건부로 함수를 생성할 때
- 함수를 인자로 전달할 때
예제 4: 콜백 함수로 사용한 함수 표현식
콜백은 자바스크립트의 기본 개념입니다. setTimeout
을 사용한 예제를 보겠습니다:
setTimeout(function() {
console.log("3초 후에 이 메시지가 나타납니다");
}, 3000);
이 경우, 우리는 setTimeout
에 익명 함수 표현식을 콜백으로 전달하고 있습니다. 자바스크립트에게 "3초가 지나면 이 코드를 실행해달라"고 말하는 것과 같습니다.
예제 5: 조건부로 생성한 함수
occasionally, you might want to create different functions based on certain conditions:
let isEven = function(num) {
return num % 2 === 0;
};
let checkNumber = isEven(4) ?
function() { console.log("It's even!"); } :
function() { console.log("It's odd!"); };
checkNumber(); // 출력: It's even!
이 경우, 우리는 삼항 연산자를 사용하여 isEven
의 입력이 짝수인지 홀수인지에 따라 다른 함수 표현식을 checkNumber
에 할당하고 있습니다.
객체 메서드로 사용한 함수 표현식
함수 표현식은 객체의 메서드로도 사용할 수 있습니다. 재미있는 예제를 보겠습니다:
let pet = {
name: "Fluffy",
type: "cat",
speak: function() {
console.log(this.name + " says: Meow!");
}
};
pet.speak(); // 출력: Fluffy says: Meow!
이 예제에서 speak
은 함수 표현식을 사용하여 정의된 메서드입니다. Fluffy가 명령을 받아 고양이 소리를 내는 것과 같습니다!
함수 정의 방법 비교
마지막으로, 자바스크립트에서 함수를 정의하는 다양한 방법을 비교해보겠습니다:
방법 | 문법 | 올리기 | 사용 사례 |
---|---|---|---|
함수 선언 | function name() {} |
올라감 | 일반 사용, 함수가 정의되기 전에 사용해야 할 때 |
함수 표현식 | let name = function() {} |
올라감 X | 함수를 변수에 할당하거나 인자로 전달할 때 |
화살표 함수 | let name = () => {} |
올라감 X | 짧고 간단한 함수, 특히 콜백으로 사용할 때 |
각 방법은 자리를 가지며, 모두를 마스터하면 진정한 자바스크립트 마스터가 될 수 있습니다!
결론적으로, 함수 표현식은 자바스크립트 도구箱에서 강력한 도구입니다. 그들은 유연성을 제공하고 더 청결하고 모듈러한 코드로 이끌어줍니다. 자바스크립트 여정을 계속하면서, 함수 표현식을 점점 더 많이 사용하게 될 것입니다. 연습을 계속하고 호기심을 유지하면, 언제 그 지점에서 자바스크립트를 능숙하게 표현하게 될 것입니다!
Credits: Image by storyset