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
- JavaScript
- await
- 챗봇
- es7
- 오픈채팅
- 카카오
- 자연어처리
- 객체
- arguments
- 플러스친구
- trim
- vuejs
- 오픈빌더
- 자바스크립트
- 변수
- callbackhell
- 카카오톡채널
- callback
- 콜백함수
- closure
- async
- 순수함수
- 유사배열객체
- ReactNative
- developers
- es6
- expo
- Promise
- 함수
- 배열
Archives
- Today
- Total
말랑말랑 LAB
[JavaScript] 순수 함수 본문
자바스크립트의 순수 함수
- 순수 함수란?
- 언제 실행해도 항상 동일한 결과를 리턴
- 평가 시점이 중요하지 않다 --> 즉, 평가 시점을 개발자가 다룰 수 있다
- 조합성을 강조할 수 있다 --> 함수를 다른 함수의 인자로 넘기거나, 서로 다른 스레드나 공간에서 함수를 평가시켜도 항상 동일한 결과를 반환하기 때문에 안전하고 다루기 쉬운 함수가 된다
- 평가 시점을 다루는 것을 통해 다양한 로직을 만들기 위함
- 순수함수가 아닌 함수
- 평가 시점이 중요
- 평가 시점에 따라 로직이 정해지고 결과값이 달라진다
- 아래 예제를 보면 c 값이 변경되는 시점에 따라 함수 실행 결과가 달라짐을 알 수 있다
부수 효과가 있는 함수는 순수함수가 아니다
외부 상태에 영향을 미치므로
인자로 들어온 값의 상태를 직접 변경하는 함수 또한 순수함수가 아니다
그런데 종종 객체 값을 변경해야할 경우가 있다..
이를 순수함수로 만들어 사용하려면 다음과 같이 새로운 객체를 만들어 리턴해야 한다
'JavaScript > 함수형 프로그래밍' 카테고리의 다른 글
[JavaScript] _each 의 외부 다형성 높이기 (0) | 2019.01.02 |
---|---|
[JavaScript] pipe 함수, go 함수 (0) | 2018.12.26 |
[JavaScript] reduce 함수 (0) | 2018.12.25 |
[JavaScript] 커링 (0) | 2018.12.24 |
[JavaScript] 일급 함수 (0) | 2018.12.20 |
Comments