💡2.4 함수
함수의 정의
함수형 프로그래밍 패러다임 → 정확한 수학적 정의를 가지고 있으며 준수해야 할 엄격한 규칙의 집합
JS에서는 함수가 프로시저의 역할을 수행하며, 호출 가능하고 입력값과 출력값을 가질 수 있는 구문의 모음이다.
함수의 정의 방법
함수 선언 또는 함수 선언문
함수가 다른 문의 표현식이 아니라 문 자체이기 때문에 함수 선언이라고 한다. 함수 선언으로 정의한 함수 awesomFuntion
은 식별자 awesomFuntion
과 실제 함수를 나타내는 값의 연관이 코드 실행 단계가 아닌 컴파일 단계에서 맺어진다.
함수 표현식
함수 표현식을 사용해 함수를 정의, 할당할 수 있다.
변수 awesomFuntion에 할당할 수 있다. 함수 선언과 함수 표현식의 다른 점은 함수와 함수 식별자가 코드가 실행되기 전까지는 관계를 맺지 않는 것이다.
자바스크립트에서의 함수 특징
함수는 할당 가능하고, 전달 가능한 값으로 취급된다. (함수형 프로그래밍 패러다임을 지원하는 언어에서 필수)
함수는 객체의 한 종류로, 매개변수와 반환값을 통해 데이터를 처리함.
함수의 구성 요소
매개변수
함수는 매개변수를 통해 입력을 받는다.
myName은 매개변수이며 함수 내에서 지역 변수이다. 함수는 0~원하는 개수 만큼 매개변수를 받을 수 있도록 정의할 수 있다. 함수를 호출할 때 인수라 부르는 값(ex. 타로)을 매개변수에 할당한다.
반환
return 키워드를 사용하여 함수에서 값을 반환할 수 있다.
함수는 한 개의 값만 반환할 수 있다. 여러 개를 반환하고 싶다면 객체나 배열로 감싸 반환하면 된다.
객체의 프로퍼티로 할당
함수는 값이므로 함수를 객체의 프로퍼티로 할당할 수 있다.
3개의 함수의 참조는 whatToSay라는 객체에 종속된다. 각 함수를 호출하려면 객체의 프로퍼티에 접근해 호출하려는 함수의 참조에 접근해야 한다.
JS에서 함수는 값처럼 취급되며, 다양한 형태로 존재한다. (부록 A.2절)
Last updated