함수를 정의하는 방법
- 함수 선언문
- 함수 표현식
- 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
'자바스크립트' 카테고리의 다른 글
함수 객체( 함수도 객체다) (0) | 2021.07.05 |
---|---|
함수 호이스팅 (0) | 2021.07.05 |
배열(Array() 생성자 함수 , 유사 배열 객체) (0) | 2021.07.05 |
배열(프로퍼티 생성,열거,삭제) (0) | 2021.07.02 |
배열(표기법,메서드,객체와의 차이점) (0) | 2021.07.02 |