반응형

함수는 왜 사용할까?

1. 재사용성

구구단 프로그램을 구성해야 한다고 하자.

이런 경우 필요한 단수가 나올때마다 반복문의 변수값을 바꿔줘가면서 for문이 점점 늘어날 것이다.

하지만 매개변수 값에 따라 구구단을 출력하는 기능을 가진 함수를 정의하였다면, 우린 원하는 구구단의 값만 넣어주고

함수만 호출하면 언제든이 원하는 구구단을 소스도 지저분하지 않게 구성할 수 있을것이다.

이렇게 같은 소스를 사용하지 않게 되면, 용량도 자연스레 줄어들 것이다.

2. 가독성

함수의 기능을 정의하고 함수의 명을 잘 지어놨다면 해당 함수명만으로도 이 함수가 어떤 기능을 할지 어떻게 동작할지 유추할 수 있고,

또한 해당 기능이 필요할땐 선언한 함수를 호출함으로써 불필요한 소스는 줄어들고 체계적이며 가독성이 소스를 구성할 수 있다.

3. 모듈화

라이브러리 파일을 만들거나 대규모의 프로젝트를 구성하게 될 때 필요한 기능을 정의하고 기능을 팀별로 구성하여, 서로에게 영향을 미치지 않도록 구조별로 구성하여 작성이 가능해지고 유지보수나 버그가 발생시 해당 함수를 수정함으로써 보다 편리해진다.

 


 

자바스크립트의 함수 선언

- 선언 함수

//선언 함수
function 함수명(매개변수, 매개변수 ...){
  //기능 정의
  return 반환 할 데이터;
}

가장 일반적으로 보던 형태 일 것이다.

- 익명 함수

// 익명 함수
var 함수명 = function(매개변수, 매개변수 ...){
  //기능 정의
  return 반환 할 데이터;
}

 

- 기명 함수

// 기명 함수
var 함수명1 = function 함수명2(매개변수, 매개변수 ...){
  return 반환 할 데이터;
}

호출 시에는 함수명2로 호출이 아닌 함수명1로 호출 한다.

MDN 측의 글을 보면 함수내에서 자신을 참조하는데 사용하거나 디버거 모드에서 함수 식별하는데 사용 할수 있다고 합니다.

var factorial = function fac(n) { 
  return n<2 ? 1 : n*fac(n-1) 
};

console.log(factorial(3));

factorial 문제를 통한 사용 예시(재귀함수를 통해 구현 하였다.)

 

- 화살표 함수

// 화살표 함수
var 함수명 = (매개변수, 매개변수 ...)=>{
  //기능 정의
  return 반환 할 데이터;
}

 

- 즉시 실행 함수

// 즉시 실행 함수
(function 함수명(매개변수, 매개변수 ...){
  //기능 정의
})()

 

함수는 여러개의 매개변수는 받을 수 있지만 return값인 반환 값은 한개만 가능하다.

반응형