12장 함수

 

12.1 함수란?

 

일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행단위로 정의한 것이다.

 

함수 선언문)

function add(x, y) {
	return x + y;
}

add(2, 5);

-> 매개변수(x, y), 인수(2,5), 반환값(7) 으로 구성

 

12.2 함수를 사용하는 이유

코드의 재사용. 만들어놓고 여러번 호출하여 사용할 수 있으니까

 

12.3 함수 리터럴

함수는 객체이므로, 변수에 함수 리터럴을 할당할 수 있다.

 

12.4 함수 표현식

값의 성질을 갖는 객체를 일급 객체라 한다.

자바스크립트의 함수는 일급 객체이므로 함수를 값처럼 자유롭게 사용할 수 있다.

 

var add = function foo (x, y) {
	return x + y;
};

console.log(add(2, 5));

 

12.4.3 함수 생성 시점과 함수 호이스팅

함수 선언문이 코드의 선두로 끌어 올려진 것 처럼 동작하는 자바스크립트 고유의 특징을 함수 호이스팅이라고 한다.

 

함수 표현식으로 함수를 정의하면 함수 호이스팅이 아니라 변수 호이스팅이 발생함 ( 변수에 함수를 담기 때문에)

 

 

12.4.4 Function 생성자 함수

var add = new Function('x', 'y', 'return x + y');

console.log(add(2,5 ));

 

12.4.5 화살표 함수

화살표 함수는 기존의 함수보다 표현만 간략한 것이 아니라 내부 동작 또한 간략화되어 있다.

 

12.5 함수 호출

함수를 호출하면 현재의 실행 흐름을 중단하고 호출된 함수로 실행 흐름을 옮긴다.

 

12.5.2 인수 확인

자바스크립트의 경우 함수를 정의할 때 적절한 인수가 전달되었는지 확인할 필요가 있다.

 

12.5.4 반환문

반환문의 역할 2가지

1. 함수의 실행을 중단하고 함수 몸체를 빠져나간다.

2. return 키워드 뒤에 오는 표현식을 평가해 반환한다.

 

12.7.2 재귀함수

자기 자신을 호출하는 함수

 

12.7.4 콜백 함수

함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 콜백 함수라고 하며, 매개변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수를 고차함수라고 한다.

 

12.7.5 순수 함수

어떤 외부 상태에 의존하지도 않고 변경하지도 않는, 즉 부수효과가 엉ㅄ는 함수를 순수 함수라 하고, 부수효과가 있는 함수를 비순수함수라고 한다.

 

 

+ Recent posts