Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ReactNative
- expo
- 카카오톡채널
- 챗봇
- developers
- 배열
- 오픈채팅
- Promise
- callback
- arguments
- 플러스친구
- 자연어처리
- es6
- 카카오
- 객체
- es7
- await
- 유사배열객체
- trim
- callbackhell
- 함수
- 자바스크립트
- 콜백함수
- JavaScript
- 오픈빌더
- 변수
- async
- vuejs
- closure
- 순수함수
Archives
- Today
- Total
말랑말랑 LAB
[JavaScript] _each 의 외부 다형성 높이기 본문
_each 의 외부 다형성 높이기
1. _each에 null 넣어도 에러 안나게
- 현재 정의한 _each 함수에서 첫번째 인자로 null을 넣으면 에러 발생 !
- _each 함수 내부에서 list의 length 속성을 참조하고자 할 때, list가 null이기 때문에 에러 발생
- 에러가 나지 않도록 처리해보자 !
- 배열 length (list.length) 에 undefined 가 들어가면 에러는 나지 않고, for문의 조건식 평가 결과가 false이기 때문에 바로 빠져나오게 됨
- length를 참조하는 방식을 _get함수를 통해서 참조하게 만들기만 해도 에러가 나지 않게 된다 !
- _get 함수는 인자 값이 null 일 경우 undefined를 리턴하는 처리를 해주고 있기 때문
_each 함수를 사용하고 있는 _map, _filter 함수와 _map, _filter 함수를 사용한 _go 함수까지 null 값에 대한 에러 처리가 됨
error 는 나지 않고 빈 배열 리턴
함수형 프로그래밍에서는 함수를 연속으로 실행할 때, 언제 어디서 undefined 나 잘못된 값이 들어와도 에러가 나지 않고 흘려보낼 수 있는 전략이 필요 !!
2. _keys 만들기
- Object.keys()를 좀더 안전하게 만든 방법
- Object.keys() : 객체에서 key값들만 뽑아주는 함수
- 예제 - null 값에서 에러 발생 !
- 따라서 아래와 같이 object 여부를 체크하여 object 가 아닐 때는 빈 배열을 리턴하도록 함
3. _keys 에서도 _is_object인지 검사하여 null 에러 안나게
- 인자의 type을 체크하여 object 여부를 리턴하는 _is_object() 생성
_keys() 사용하여 테스트 --> null 값도 에러 발생하지 않음
4. _each 외부 다형성 높이기
- 아래와 같은 객체({13: 'ID', 19: 'HD', 29: 'YD'})에 대해서는 _each 함수가 동작하지 않는다
- 이 객체는 length 가 존재하지 않으며, key 값이 순차적이지 않기 때문 !
배열뿐 아니라 위와 같은 객체에 대해서도 순회하는 기능이 동작하도록 _each 함수를 변형해보자 !
_keys() 활용
_map, _filter, _go 함수에서도 역시 정상 동작함
'JavaScript > 함수형 프로그래밍' 카테고리의 다른 글
[JavaScript] pipe 함수, go 함수 (0) | 2018.12.26 |
---|---|
[JavaScript] reduce 함수 (0) | 2018.12.25 |
[JavaScript] 커링 (0) | 2018.12.24 |
[JavaScript] 일급 함수 (0) | 2018.12.20 |
[JavaScript] 순수 함수 (0) | 2018.12.19 |
Comments