Pront/Javascript

[Javascript] 함수 선언 방식 5가지

soyeonisgood 2022. 9. 24. 14:09

함수 선언 방식

  • 함수 선언문
  • 함수 표현식
  • 기명 함수 표현식
  • Function() 생성자
  • 즉시 실행 함수

 

함수 선언문 방식

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

// 호출
n = sub1(10,5);
console.log(n);

 

함수 표현식 방식

  • 함수 표현식에서 지정한 이름 (여기선 익명함수이니 상관 X)은 외부에서 사용할 수 없다.
var sub2 = function (x, y) { // 익명 함수
	return x + y
};

// 호출
// 변수에 담기도 가능하다.
var plus = sub2; // 변수에 담기 가능
n = sub2(10, 20);
console.log(n); // 30

n = plus(10, 20);
console.log(n); // 30

 

기명 함수 표현식

  • 함수 표현식에서 지정한 이름 (add())은 외부에서 사용할 수 없다.
var sub3 = function add(x, y) {
	return x+y;
};

// 호출
n = sub3(5, 20);
console.log(n); // 25

// console.log( add(15,20) ); // 에러. ReferenceError: add is not defined
	// 함수 표현식에서 지정한 이름(add())은 외부에서 사용 불가 !
// --------------------------------------------------------------------------------    
    
// 기명 함수 표현식을 이용한 재귀호출
var sub4 = function sum(n) {
	return n>1 ? n+sum(n-1) : n;
};

// 호출
console.log( sub4(10) ); // 55

 

Function() 생성자를 이용한 함수 만들기

var sub5 = new Function('x','y','return x+y;');
console.log( sub5(5, 3) ); // 8

 

즉시 실행 함수

  • 생성과 동시에 바로 함수가 실행된다
var s = (function(a, b) {
	return a+b;
})(5,7);
console.log(s); // 12

(function(a,b) {
	console.log(a+b);
})(10, 7); // 17