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(