자바스크립트에서의 함수
함수
함수는 코드의 중복을 억제하고 재사용성을 높이며 유지보수의 편의성
을 높이고 실수를 줄여 코드의 신뢰성
을 높인다.
함수 리터럴
var f = function add(x,y){
return x+y;
};
함수도 함수리터럴로 생성할 수 있다. 다른 언어와 다르게 함수는 객체이다
라는 점을 이해해야한다. 함수 정의 방식에는 4가지가 있다. 함수 선언문, 함수 표현식, Function 생성자 함수, 화살표 함수가 있다.
함수 선언문
function add(x,y){
return x+y;
}
함수 선언문은 함수 이름을 생략할 수 없다.
함수 호이스팅에 의해 런타임 이전에 함수 객체로 초기화된다.
함수 표현식
자바스크립트의 함수는 객체 타입의 값
이다. 이를 일급 객체라고 한다. 즉 함수를 값처럼 자유롭게 사용할 수 있다.
var add = function (x,y){
return x+y;
};
함수 호이스팅에 의해 함수 표현식으로 정의한 함수는 반드시 함수 표현식 이후에 참조 또는 호출해야 한다.
화살표 함수
ES6에서 도입된 화살표 함수는 function 키워드 대신에 =>
를 사용한다. 항상 익명 함수
로 정의한다.
함수 호출
매개변수는 함수 몸체 내부에서만 참조가능하다.
function add(x,y){
return x+y;
}
console.log(add(2)); // NaN
console.log(add(2,3,4)); // 7
자바스크립트 함수의 매개변수 개수는 체크하지 않기 때문에 주의해서 사용해야 한다. 인수가 부족하여 할당되지 않은 매개변수의 값은 undefined
이고, 초과된 인수는 무시
된다.
- 자바스크립트 함수는 매개변수와 인수의 개수가 일치하는지 확인하지 않는다.
- 자바스크립트는 동적 타입 언어로써, 매개변수의 타입을 사전에 지정할 수 없다.