본문 바로가기
자바스크립트

함수(함수를 정의하는 법)

by 리양 2021. 7. 5.

함수를 정의하는 방법

  1. 함수 선언문 
  2. 함수 표현식 
  3. Function() 생성자 함수 

 

1. 함수 선언문

  • 함수 리터럴 형태와 같다.
  • 함수 선언문 방식으로 함수를 정의할 때는 반드시 함수명이 있어야 한다.
// 함수 선언문 방식

function add (x,y) {
	return x+y;
}

console.log(add(3,4));		// (출력값) 7

 

 

2. 함수 표현식

  • 변수에 함수를 할당해서 함수를 생성하는 것.
  • 함수 끝에는 세미콜론 ( ; )을 붙여주자. (관습적인 이유)
// 함수표현식 방식

var add = function(x,y) {
	return x + y ;
};

var plus = add    // plus 와 add 는 같은 익명함수를 '참조' 한다.

console.log(add(3,4))  // (출력값) 7
console.log(plus(5,6))  // (출력값) 11

 

위의 함수를 보면 이름이 없다. 저것처럼 함수를 만들 때 함수에 이름을 붙일 수도, 이름을 안 붙일 수도 있다.

함수의 형태는 두 가지로 나뉜다.

 

  • 익명 함수 :  함수에 따로 이름을 만들지 않은 함수
  • 기명 함수 : 함수에 이름을 붙인 함수

 

기명 함수를 사용할 때는 몇 가지 주의점이 있다.

기명 함수에 쓰인 함수 이름은 외부로 호출되지 않는다.

왜 bar을 호출할 때는 에러가 뜨냐면 자바스크립트 엔진이 foo() 의 형식을 이런 식으로 변경해놓기 때문이다.

let foo = function foo(x,y) {
 	return x + y ;
 }

 

기명 함수는 재귀적인 호출 처리를 위해 쓰인다.

var factorialVar =  function factorial(n) {
	if(n <= 1){
    	return 1;
    }
    return n * factorial(n-1);
};

console.log(factorialVar(3));  // (출력값) 6

 

 

3. Function() 생성자 함수 

new Faunction (arg1, arg2, ... argN, functionBody)

// arg1, arg2, ... argN : 매개변수
// functionBody : 함수실행코드


// 예시

var add = new Faunction('x','y','return x+y');
console.log(add(3,4))     // 출력값 7