함수를 호출할 때마다 반환 함수를 생성하는 함수를 고차 함수(high order function)라고 한다.
const func = () => {
return () => {
console.log('abcd');
};
};
여기서 반환된 함수는 다른 변수에 저장할 수 있고, 그 변수에 저장된 함수를 다시 호출할 수 있다.
const innerFunc = func();
innerFunc(); // abcd
반환하는 값을 바꾸고 싶을 때는 매개변수를 사용한다.
const func = (change) => {
return () => {
console.log(change);
};
};
화살표 함수 문법에 따라서 함수의 본문에서 바로 반환되는 값이 있으면 {와 return을 생략할 수 있기 떄문에
const func = (change) => () => {
console.log(change);
};
이건 마치 마트료시카...🪆
if문 중첩 제거하기✂️
if 문을 중첩하여 사용하게 되면 코드를 파악하기 어렵다. 이때 다음과 같은 방법을 이용해서 if 문의 중첩을 제거한다.
1. 공통된 절차를 각 분기점 내부에 넣는다.
2. 분기점에서 짧은 절차부터 실행하도록 if 문을 작성한다.
3. 짧은 절차가 끝나면 return(함수 내부의 경우)이나 break(for 문 내부의 경우)로 중단한다.
4. else를 제거한다.(여기서 중첩 하나가 제거된다.)
5. 다음 중첩된 분기점이 나올 때 1~4의 과정을 반복한다.
AS 2 day
아직 처음부터 바로 효율적이고 보기좋은 코드를 작성하는건 쉽지 않지만
그렇다고 원하는 결과값을 얻는것에서 그치지말고
완성한 코드에서 필요하지않은 부분들, 효율을 높일 수 있는 방법들을 생각해보도록하자