WeniVooks

검색

JavaScript 에센셜

함수의 활용

1. 함수의 활용

함수는 코드의 재사용성을 높이고 프로그램의 구조를 개선하는 데 활용됩니다. 함수를 적절히 활용하면 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 이번 장에서는 함수를 활용하는 다양한 방법을 살펴보도록 하겠습니다.

1.1 반복적인 작업을 함수로 추상화

함수를 사용하여 반복적인 작업을 추상화할 수 있습니다.

function greet(name) { console.log(`안녕하세요, ${name}님!`); } greet("licat"); greet("mura"); greet("binky");

위의 예시에서 greet 함수는 인사 메시지를 출력하는 역할을 합니다. 이렇게 함수 내부의 구조를 몰라도 사용할 수 있도록 하는 것을 추상화라고 합니다. 이렇게 반복적인 작업을 함수로 추상화하면 코드의 중복을 줄일 수 있습니다.

1.2 콜백 함수

콜백 함수는 다른 함수에 인자로 전달되어 나중에 호출되는 함수입니다. 콜백 함수를 이용하면 특정 작업이 완료된 후에 다른 작업을 실행할 수 있어, 코드의 실행 순서를 제어할 수 있습니다.

function greet(name, callback) { console.log(`안녕하세요, ${name}님!`); callback(); } function sayGoodbye() { console.log("다음에 또 만나요!"); } greet("licat", sayGoodbye);

위의 예시에서 greet 함수는 인사 메시지를 출력한 후, 전달받은 함수를 호출합니다. 이렇게 함수 안에서 실행하는 함수나 함수 안에서 반환되는 함수를 콜백 함수라고 합니다. 왜 콜백함수라고 부를까요? 콜(call)을 받아서 다시 불러주는(back) 함수이기 때문입니다.

콜백 함수를 활용하면 함수의 실행 흐름을 제어하고 추가적인 동작을 수행할 수 있습니다. 자주 사용되는 패턴이니 기억해주세요.

이러한 함수의 활용은 중급자로 가기 위한 기본적인 지식입니다. 중급자로 가기 위해 추후에 배울 클로저 등을 공부할 때 도움이 되는 지식이니 꼭 기억해주세요.

2. 함수를 선언하는 방법

2.1. 함수 선언문과 함수 표현식

함수는 function + 함수이름 + ( ) + { } 의 조합인 구문(Statement)으로 선언할 수도 있고, 함수 이름 없이 선언하여 할당하는 표현식(Expression)으로 선언하는것도 가능합니다.

// 함수 선언문 function sum(x, y) { return x + y; } // 함수 표현식 let sumXY = function (x, y) { return x + y; }; console.log(sum(10, 20)); console.log(sumXY(10, 20));

구문(Statement)과 표현식(Expression)

구문은 자바스크립트 명령문으로, 어떤 작업을 수행하기 위한 코드 블록이라 할 수 있습니다. 예를 들어 우리가 뒤에서 배울 if문, switch문, for문 등이 여기에 포함됩니다.

표현식은 값으로 평가될 수 있는것을 의미합니다. 숫자나 문자열 같은 값 자체나 5 < 3 와 같은 비교 연산자등이 여기에 해당합니다. 함수를 값으로 변수에 할당하기 때문에 함수표현식이라고 부릅니다.

2.2. 화살표 함수

함수는 function 키워드 대신 화살표 기호로도 표현할 수 있습니다. 화살표 함수는 이름이 없으므로 주로 함수 표현식으로 사용됩니다. 파라미터를 소괄호로 감싸고 화살표(=>) 뒤에 함수의 내용을 작성합니다.

const 더하기 = (x, y) => {
  console.log(`x: ${x}, y: ${y}`);
  return x + y;
};
console.log(더하기(10, 20));
const 더하기 = (x, y) => {
  console.log(`x: ${x}, y: ${y}`);
  return x + y;
};
console.log(더하기(10, 20));

함수 선언문으로 작성한 함수를 화살표 함수로 변경하면 다음과 같습니다.

// 일반 함수
function 더하기(x, y) {
  return x + y;
}
// 일반 함수
function 더하기(x, y) {
  return x + y;
}
const 더하기 = (x, y) => { return x + y; } console.log(더하기(10, 20));

화살표 함수에서 반환문만 있는 경우 중괄호와 return 키워드를 생략할 수 있습니다.

const 더하기 = (x, y) => x + y; console.log(더하기(10, 20));

파라미터가 하나인 경우에만 소괄호를 생략할 수 있습니다.

const 제곱 = x => x * x; console.log(제곱(10));

화살표 함수와 같이 함수의 이름을 생략하고 함수를 선언하는 방식을 익명 함수(Anonymous Function) 라고 합니다. 다른 언어에서는 람다식(Lambda Expression)이라고 부르기도 합니다.

7.1 코드를 묶어주는 함수8장 조금 더 깊이 들여다보기