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