-
모던 자바스크립트 딥 다이브 12장. 함수Modern JavaScript Deep Dive 2022. 4. 30. 21:08
함수란?
함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의하는 것
함수는 코드의 재사용 측면에서 유용하다. -> 유지보수의 편의성을 높인다. -> 코드의 신뢰성을 높인다.
함수를 정의하는 방식
- 함수 선언문
- 함수 표현식
- Function 생성자 함수
- 화살표 함수
자바스크립트 함수는 일급 객체다. 일급 객체라는 것은 함수를 값처럼 자유롭게 사용할 수 있다는 의미다.
함수 생성 시점과 함수 호이스팅
함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 함수 호이스팅이라고 한다. vs 함수 표현식으로 함수를 정의하면 함수 호이스팅이 발생하는 것이 아니라 변수 호이스팅이 발생한다.
화살표 함수
화살표 함수는 생성자 함수로 사용할 수 없으며, 기존 함수와 this 바인딩 방식이 다르고, prototype 프로퍼티가 없으며 arguments 객체를 생성하지 않는다.
즉시 실행 함수
즉시 실행 함수 IIFE 는 단 한 번만 호출되며 다시 호출할 수 없다. 익명함수를 사용하는 것이 일반적이다.
재귀 함수
재귀 함수는 함수가 자기 자신을 호출하는 것을 말한다. 재귀 함수에는 꼭 탈출 조건이 필요하다.
중첩 함수
중첩 함수(내부 함수)는 함수 내부에 정의된 함수를 말한다. 중첩 함수를 포함하는 함수는 외부 함수라 부른다.
콜백 함수
콜백 함수는 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 말한다.
매개변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수를 고차 함수라고 한다.
순수 함수
순수함수는 어떤 외부 상태에 의존하지도 않고 변경하지도 않는, 즉 부수 효과가 없는 함수를 말한다.
'Modern JavaScript Deep Dive' 카테고리의 다른 글
모던 자바스크립트 딥 다이브 14장. 전역 변수의 문제점 (0) 2022.05.02 모던 자바스크립트 딥 다이브 13장. 스코프 (0) 2022.05.01 모던 자바스크립트 딥 다이브 11장. 원시 값과 객체의 비교 (0) 2022.04.23 모던 자바스크립트 딥 다이브 10장. 객체 리터럴 (0) 2022.04.22 모던 자바스크립트 딥 다이브 9장. 타입 변환과 단축 평가 (0) 2022.04.19