🔑 키워드 정리
매개변수 : 함수 내부로 입력을 전달받는 변수. 최대 3개 이상을 넘지 않는 것이 좋다.
인수 : 함수를 호출할 때 입력하는 변수. 값으로 평가될 수 있는 표현식이어야 한다.
함수 선언문 : 함수 이름을 생략할 수 없다. 표현식이 아닌 문이다. 그러므로 변수에 할당할 수 없다.
function add(x,y){
return x+y;
}
함수 표현식 : 표현식인 문이다.
var add = function (x,y){
return x+y;
}
중첩(내부) 함수 : 함수 내부에 정의된 함수. 외부 함수를 돕는 헬퍼 역할을 한다.
외부 함수 : 중첩 함수를 포함하는 함수.
콜백 함수(Callback Function) : 함수의 매개변수를 통해서 다른 함수의 내부로 전달되는 함수
고차 함수(Higher-Order Function, HOF) : 함수의 외부에서 콜백 함수를 전달받은 함수
비순수 함수 : 부수효과가 있는 함수.
순수 함수 : 부수효과가 없는 함수. 인숭의 불변성을 유지한다. 외부 상태를 변경하지 않는다. 비순수 함수보다 순수함수를 사용하는 것이 좋다.
🗒 내용 정리
함수 이름과 호출
함수 이름은 함수 몸체에서만 참조할 수 있는 식별자다. 즉, 함수 밖에서 함수를 호출할 수 없다. 자바스크립트 엔진이 암묵적으로 식별자를 생성하는 것이다. 우리는 이 식별자로 함수를 호출할 수 있다. 함수를 호출하면 현재의 실행 흐름이 중단되고 호출된 함수로 실행 흐름을 옮긴다.
함수 호이스팅
함수 표현식으로 정의한 함수는 함수 표현식 정의 이전에 호출할 수 없다. 변수 호이스팅처럼 동작하기 때문이다. 함수 리터럴이 할당되기 전에는 undefined 로 초기화된다.
매개변수와 인수
- 인수가 할당되지 않은 매개변수의 값은 undefined 다. 매개변수보다 인수가 더 많은 경우 초과된 인수는 무시된다.
- 원시 타입 인수는 값 자체가 복사된다. 반면, 객체 타입의 인수는 참조 값이 복사되어 매개변수에 전달되기 때문에 부수효과가 발생한다. 그러므로 객체의 변경을 추적하려면 옵저버 패턴을 이용한다.
- 자바스크립트의 함수는 일급 객체다. 함수를 값처럼 자유롭게 사용할 수 있다는 의미다. 그러므로 함수의 매개변수를 통해서 함수 내부로 전달도 할 수 있다.
반환문의 역할
- 함수의 실행을 중단하고 함수 몸체를 빠져나간다.
- return 키워드 뒤에 오는 표현식을 평가해서 반환한다.
'Today I Learned' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 14장 전역 변수의 문제점 (0) | 2022.02.21 |
---|---|
모던 자바스크립트 Deep Dive 13장 스코프 (0) | 2022.02.13 |
모던 자바스크립트 Deep Dive 11장 원시 값과 객체의 비교 (0) | 2022.02.08 |
운영체제와 정보기술의 원리9 디스크 관리 (0) | 2022.02.06 |
운영체제와 정보기술의 원리8 가상 메모리 (0) | 2022.02.05 |