반응형
함수는 함수 정의를 통해 생성하는데 함수 선언문, 함수 표현식, Function 생성자 함수, 화살표 함수 등을 통해 함수를 정의할 수 있다. 함수를 정의한 후에 함수를 실행시키려면 함수를 호출시켜야한다.
1. 함수 정의 방법
1) 함수 선언문
function hello (a, b) {
return a+b;
}
console.log(hello(3,7)); // 10
2) 함수 표현식
const hello = function (a, b) {
return a+b;
}
console.log(hello(3,7)); // 10
3) function 생성자 함수
const hello = new Function('a', 'b', 'return a + b');
console.log(hello(3, 7)); // 10
4) 화살표 함수
const hello = (a, b) => {
return a + b
}
console.log(hello(3, 7)); // 10
반응형
2. 다양한 함수의 형태
함수를 정의하는 방법도 다양하지만 함수의 형태도 다양하다. 다양한 함수의 형태에 대해서도 알아보자.
1) 즉시 실행 함수
즉시 실행 함수는 함수 정의와 동시에 즉시 호출되는 함수를 말하는데 즉시 실행 함수는 단 한번만 호출되며 다시 호출할 수 없다. 또한 즉시 실행함수는 익명 즉시 실행 함수와 기명 즉시 실행 함수로 나뉠 수 있다.
// 익명 즉시 실행 함수
(function () {
const a = 5;
const b = 7;
return a + b;
}());
// 기명 즉시 실행 함수
(function hello() {
const a = 5;
const b = 7;
return a + b;
}());
2) 재귀 함수
재귀함수는 자기 자신을 호출하는 함수를 말한다. 재귀함수는 반복되는 처리를 위해 사용하는데 아래 예제를 통해 확인할 수 있다.
// 일반적인 반복 함수
function hello(n) {
for(let i = n; i >= 0; i--) console.log(i)
}
hello(5);
// 재귀함수 호출
function hello(n) {
if(i < 0) return;
console.log(n);
hello(n-1); // 재귀 호출
}
hello(5);
3) 중첩 함수
중첩 함수는 함수 내부에 정의된 함수를 의미하는데 이를 중첨 함수 또는 내부 함수라고 부른다. 중첩 함수는 외부 함수에서만 호출할 수 있다.
function hello() {
const a = 1;
// 중첩 함수
function inner() {
const b = 2;
// 외부 함수의 변수를 참조 가능
console.log(a+b);
}
inner();
}
hello();
4) 콜백 함수
콜백 함수는 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 의미한다. 매개변수를 통해 함수의 외부에서 콜백 함수를 전달 받은 함수를 고차 함수라고 한다.
5) 순수 함수와 비순수 함수
순수 함수는 부수 효과가 없는 함수이며, 비순수 함수는 부수 효과가 있는 함수를 의미한다.
반응형