함수, function

임재환·2021년 4월 1일
0

JavaScript

목록 보기
10/15


함수

함수는 코드 블록 내부의 문들을 하나의 실행 단위로 만든 것이다.

함수는 입력을 받아 출력을 내보내며, 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value) 라고 한다.

함수는 만들어 놓으면 몇 번이든 호출할 수 있으므로 코드의 재사용에 용이하다.
또 자신의 역할을 잘 설명하는 이름을 만든다면 코드의 가독성을 향상시킨다.


함수의 정의

함수 선언문

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

함수 선언문의 구조는 다음과 같으며 함수 이름을 생략할 수 없다.
함수 선언 시 함수 이름과 동일한 식별자가 생성되고, 이 변수에 함수가 할당된다.

함수 표현식

var multiply = function(a, b) {
	return a*b;
}

자바스크립트의 함수는 일급 객체이므로 변수에 할당 가능하다.
함수 이름은 생략 가능하다.

Function 생성자 함수

Function 객체의 생성자 함수로 함수를 생성할 수 있다.

화살표 함수(ES6)

const subtract = (x, y) => x-y;

function 키워드 대신 화살표를 이용해 간단하게 함수를 선언할 수 있다.


함수 호출

함수의 식별자와 함수 호출 연산자를 사용해 함수를 호출할 수 있다.
필요할 경우, 함수 호출 연산자인 () 안에 필요한 인수를 포함해 함수를 호출할 수 있다.

함수를 호출하면 현재의 실행 흐름이 중단되고 호출된 함수로 실행 흐름이 옮겨진다.
이 때 경우에 따라 매개변수에 인수가 차례로 할당되고, 함수 내부의 문들이 실행된다.

매개변수와 인수

함수 실행에 필요한 값을 외부에서 받아와야 할 경우에 매개변수(인자)를 통해 인수를 전달한다.

인수는 함수를 호출할 때 지정하며, 개수와 타입에 제한이 없다.
매개변수에 인수가 할당되지 않을 경우 undefined 값을 갖는다.
매개변수보다 많은 수의 인수가 주어질 경우 남는 인수는 무시되나,
argument 객체에 할당된다.

반환

return 키워드를 사용해 함수 외부로 값을 반환할 수 있다.
반환문은 생략 가능하며 이때 함수는 undefined를 반환한다.


다양한 형태의 함수

즉시 실행 함수

함수 정의와 동시에 호출되는 함수를 즉시 실행 함수, IIFE(Immediately Invoked Function Expression)라고 한다.

(function(a,b){
	return a/b;
}(4,2))

그룹 연산자를 이용해 함수 리터럴로 평가 후 바로 호출 연산자를 사용해 실행한다.

콜백 함수, callback function

함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 콜백 함수라고 한다.
이 때, 콜백 함수를 받는 외부의 함수를 고차 함수,Higher-Older Function라고 한다.

순수 함수, Pure Function

어떠한 외부 상태에 의존하지도 않고 변경하지도 않는 함수를 순수 함수라고 한다.
프로그래밍에서 부수 효과를 최대한 줄이기 위해 비순수 함수의 사용을 지양한다.

profile
What do I do?

0개의 댓글