본문 바로가기
프로그래밍/자바스크립트

함수 (function)

by Programmer.Junny 2025. 1. 6.

자바스크립트에서 함수는 세 가지 방법으로 만들 수 있다.

1. 함수 선언문

function sum(a, b) {
  let result = a + b;

  return result;
}

2. 함수 표현식

let sum = function(a, b) {
  let result = a + b;

  return result;
};

sum(1,2);	//3

함수는 객체이기 때문에 위와 같이 변수처럼 받을 수 있다. 그리고 C#의 델리게이트처럼 호출 할 수 있다.

3. 화살표 함수

// 화살표(=>) 우측엔 표현식이 있음
let sum = (a, b) => a + b;

// 중괄호{ ... }를 사용하면 본문에 여러 줄의 코드를 작성할 수 있음. return문이 꼭 있어야 함.
let sum = (a, b) => {
  // ...
  return a + b;
}

// 인수가 없는 경우
let sayHi = () => alert("Hello");

// 인수가 하나인 경우
let double = n => n * 2;

화살표 함수는 C#의 람다식을 사용한 익명 함수와 같다고 생각하면 되겠다.

나머지 매개변수 (...args)

함수를 만드는 방법 외에도 ...arguments라는 특별한 매개변수가 있다.

const multiplyAll = function(...args){
    return args.reduce((a, b) => a * b, 1);
}

console.log(multiplyAll(3, 4, 5, 6, 7, 8, 9 ,10));	//1814400

위의 예제 코드를 보면 ...args 를 함수의 매개변수로 넣어줬다.
나머지 매개변수는 매개변수에 입력된 Arguments들을 배열로 만들어 담는다.
그렇기 때문에 배열의 함수 중 reduce를 사용할 수 있는 것이다.

중첩 함수

function sayHiBye(firstName, lastName) {

    // 헬퍼(helper) 중첩 함수
    function getFullName() {
      return firstName + " " + lastName;
    }
  
    console.log("Hello, " + getFullName());
    console.log("Bye, " + getFullName());
  
}

sayHiBye('친구1', '친구3');

/** 출력결과
*Hello, 친구1 친구3
*Bye, 친구1 친구3
*/

함수 내부에는 중첩 함수를 만들 수 있다. 내부적으로 함수를 만들고 내부 함수에 도움을 줄 수 있는 헬퍼함수를 만들 수 있는 것이다.

최근댓글

최근글

skin by © 2024 ttuttak