TIL_190717
javascript 배열과 관련된 고차원 함수
- 사용자가 설정한 함수를 인자 값으로 넘겨 사용해 추가적인 기능을 할 수 있는 함수
- reduce()
- 배열을 순회하면서 인덱스 데이터를 줄여가며 사용자가 설정한 기능을 수행하는 함수
- MDN 참고
- filter()
reduce()
와 비슷하게 배열을 순회하는 동작을 하지만, 사용자 설정 기능에 맞는 새로운 배열을 생성해 반환하는 함수- 사용자 설정 기능에서
true
를 반환하는 경우만 배열에 추가된다. 만약 모든 값이false
였다면 빈 배열이 반환된다. - MDN 참고
- forEach()
- 배열의 각 요소에 대해 오름차순으로 사용자가 설정한 기능을 실행하는 함수.
- forEach()자체는 배열을 변환시키지 않지만, 사용자가 설정한
callback
함수가 배열을 변환할 수는 있다. - Return값 없음
- MDN 참고
- map()
- 배열의 각 요소에 대해 한번씩 순차적으로 호출해 그 함수의 반환값으로 새로운 배열을 만드는 함수
- MDN 참고
프로그래밍 전 사전 배경 지식 습득의 중요성
- 과제를 하기 전에 굉장히 오랜 시간동안 함수들에 대해 알아보느라 초조했는데, 어느정도 이해가 완료된 후에 코드를 작성하니 좀 더 수월하게 완성할 수 있었다.
- 이후에 더 큰 난관이 있긴 했지만 아무튼 관련된 기능은 금방 작성할 수 있었다…
타입 체크의 중요성
- Array 객체 데이터를 받아서 기능을 구성해야 했는데, Object 형이 다루기가 더 쉬워서 Object형으로 코드를 작성했다가 계속해서 에러를 맞이했다.
- 앞서 설명한 함수들은 array에만 존재하는 함수이기 때문에 Object형은 사용할 수 없어서 발생하는 문제들이 많았다.
- 타입을 생각하고 개발하는 것이 자유도가 낮은 개발을 할 땐 몰랐는데, 자유도가 높은 언어로 개발하다보니 절실하다고 느꼈다.
Callback 함수
- 어떤 이벤트가 발생한 후, 수행될 함수를 의미
- Callback 함수를 남용하면 depth가 엄청난 함수를 구현하게 된다. Callback의 지옥에 빠졌다고 표현하기도 한다.
- 이를 해결할 수 있는 방법으로 ES6에서는 promise라는 것이 추가되었다.
- 추가로 정리 예정!
블로그 포스트 카테고리 바꿔야하는데 도저히 엄두가 안난다…
주말에 하던지 해야지 ㅠㅠ 짬이나도 여유있는 것 같지 않아요 X(