함수 (Function)

G_NooN·2024년 1월 17일
0

JavaScript

목록 보기
2/7

함수란?

일련의 처리(기능)를 모아서 언제든 호출할 수 있도록 만들어 둔 것

입력 값(Input)을 받아 해당 값에 함수의 작업을 처리한 뒤 결과 값(Output)을 반환한다.

장점

  1. 재사용이 가능하다.
  • 동일한 작업을 입력값만 다르게 하여 처리할 수 있다.
  1. 프로그램을 이해하기 쉬워진다.
  • 각 기능별로 함수를 생성하여 이름을 붙이면, 해당 이름들을 통해 프로그램의 전체적인 흐름을 쉽게 이해할 수 있다.
  1. 프로그램을 관리하기 쉬워진다.
  • 상세한 처리 과정을 함수의 내부에 숨길 수 있기 때문에 프로그램 코드가 간결해진다.
  • 기능별로 분리되어 있어서 프로그램을 수정할 때 용이하다.

사용 방법

함수를 선언하고 호출한다.

선언 방식

// 함수 선언문
function funcName(input) {
  // 처리 코드
  return output;
}

// 함수 표현식
const funcName = function(input) {
  // 처리 코드
  return output;
}

// Function 키워드
const funcName = new Function(input, /* 처리 코드 */ return output);

// 화살표 함수 표현식
const funcNAme = (input) => {
  // 처리 코드
  return output;
}

호출 방식

funcName(입력값);

즉시 실행 함수(IIFE, Immediately Invoked Function Expression)

함수를 선언하고 그 즉시 호출하여 실행하는 함수

함수 선언문을 ()로 묶은 뒤 그 뒤에 ()를 붙여 실행한다.

(function(input){
  // 처리 코드
  return output;
})(input);

일급 객체로서의 함수

일급 객체(First Class Object)란?
: 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체

주요 특징

  1. 함수를 변수에 할당할 수 있다.
const funcName = function() { console.log("FuncName") }
  1. 함수를 다른 함수의 인수(매개변수)로 전달할 수 있다.
  • 고차함수(Higher-order Function) : 함수를 인수로 가지는 함수
  • 콜백함수(Callback Function) : 함수의 인수로 들어간 함수
function useFunction(func) {
  func();
}

useFunction(funcName);	// FuncName
  1. 함수에서 함수를 반환할 수 있다.
function addNumber(number) {
  return function(x) {
    return x + number;
  }
}

const addFive = addNumber(5); // function(x) { return x + 5; }

console.log(addFive(5));		// 10
  1. 함수를 객체의 속성으로 할당할 수 있다.
const person = {
  name: 'John',
  sayHi: function() { console.log("Hi"); }
}

person.sayHi();	// Hi
  1. 함수를 배열의 요소로 할당할 수 있다.
const funcArray = [
  function(a, b) { return a + b; },
  function(a, b) { return a - b; };
]

funcArray[1](10, 5);  // 5 (10 - 5)
profile
쥐눈(Jin Hoon)

0개의 댓글