함수는 프로그래밍에서 핵심적인 개념 중 하나입니다. 자바스크립트에서 함수는 매우 유연하게 구성할 수 있으며, 함수 리턴과 순환 (recursion)은 자바스크립트 함수의 강력한 기능입니다.
함수 리턴 (Function Return)
함수 리턴은 함수가 값을 반환하는 방법을 의미합니다. 자바스크립트에서 함수는 한 번에 하나의 값만 반환할 수 있습니다.
함수 내부에서 return
키워드를 사용하여 값을 반환합니다. 반환된 값은 호출한 곳으로 전달되어 다른 변수나 다른 함수의 인자로 사용될 수 있습니다.
function add(a, b) {
return a + b;
}
const result = add(2, 3);
console.log(result); // 5
const sum = add(5, 7) + 3;
console.log(sum); // 15
순환 (Recursion)
순환은 함수가 자기 자신을 호출하는 것을 의미합니다. 순환은 반복적으로 어떤 작업을 수행하거나 복잡한 작업을 간단하게 해결할 수 있는 방법입니다.
자바스크립트에서는 재귀 함수 (recursive function)를 사용하여 순환을 구현할 수 있습니다. 재귀 함수는 함수 내부에서 자기 자신을 호출하는 동작을 수행합니다.
function countdown(n) {
if (n === 0) {
console.log("완료");
} else {
console.log(n);
countdown(n - 1);
}
}
countdown(5);
// 출력:
// 5
// 4
// 3
// 2
// 1
// 완료
위의 예시는 재귀 함수인 countdown
을 사용하여 역순으로 숫자를 출력하는 간단한 예제입니다. 함수가 자기 자신을 호출하면서 매개변수 n
을 하나씩 감소시키면서 출력합니다. n
이 0에 도달하면 “완료”를 출력하고 함수를 종료합니다.
하지만, 재귀 함수를 사용할 때에는 종료 조건을 명확히 설정해야 합니다. 종료 조건이 없거나 잘못 설정되면 함수는 무한히 호출될 수 있으며 스택 오버플로우 (stack overflow) 에러가 발생할 수 있습니다.
결론
자바스크립트에서 함수 리턴과 순환은 강력한 기능으로, 함수를 더 유연하게 사용할 수 있게 해줍니다. 함수를 활용하여 복잡한 작업을 단순화하고 반복적인 작업을 처리할 수 있습니다. 재귀 함수를 사용할 때에는 종료 조건을 명확히 설정하여 무한 호출을 방지해야 한다는 점을 기억해야 합니다.