boseok-note
  • README
  • javascript
    • 함수형 자바스크립트
    • core
      • 이벤트루프 (Event Loop)
      • boxing, unboxing
      • prototype
      • 실행컨텍스트
      • hoisting
      • 클로져(Closure)
      • arguments
      • Scope - 스코프 - 유효범위
    • api
      • Promise
      • Fetch API
      • worker-api
      • Web API
    • lib
      • rxjs
        • rxjs
    • 호스트객체?
    • es6
      • var-let-const
      • template-literals
      • async-await
    • tip
      • array-like
      • Object literal, new Object
    • dom-api
      • HTML Element get Text
      • get-size
      • scrollToBottom
    • for in, for of 차이
    • storage
    • Constructor (생성자)
    • Javascript
    • module
  • front-end
    • vuejs
      • vue-rx
      • README
        • 1-start
        • 2-basic-component
        • 3-add-component
        • 4-advanced-component
        • 5-dynamic-methods-event
        • 6-internal-process
      • next-tick
      • compare-react
      • v-model-with-props
      • v-for
      • vuejs
      • vuex
    • browser
      • dom
      • cssom
      • reflow, repaint
      • 렌더링 트리(Rendering Tree)
      • web-standard
    • css
      • text-ellipse
      • white-space
      • css layout
    • Pre-render
    • react-native
      • react-native
    • 최적화 관련
    • reactjs
      • performance
      • reactjs
    • CSR, SSR
  • server-side
    • letsencrypt
    • auto-deploy
    • nlb
    • Certbot, aws https setting with wildcard
    • mysql
    • node.js
      • npm
        • npm install
      • node-dynamodb
      • node에서 간편하게 letsencrypt를 사용하여 https 구현하는 방법
    • Docker
    • nginx
    • Amazon Web Service
    • nginx https 설정
  • design-pattern
    • observer
    • flux
    • README
  • coop
    • git
      • gitignore
      • remote
      • ssh key 사용하기
      • password
      • credential
      • git
  • cs
    • port
    • data-structure
      • tree
      • binary-tree
    • network
      • home-router
      • tcp-udp
      • http
    • process
  • etc
    • sync-async
    • seo
      • seo
      • SEO Check Point
    • rest
    • unity
      • methods
Powered by GitBook
On this page
  • high order funtion
  • 순수함수
  1. javascript

함수형 자바스크립트

요즘 함수형 프로그래밍이 인기가 많아서, 함수형 자바스크립트에 대해 간단하게 설명하려고 한다!

우선 함수형 프로그래밍은 상태를 공유하는것과 데이터변조를(예상치 못한, 사이드이펙트) 방지할수있다.

그리고 사실 함수형은 자바스크립트에서 중요한 컨셉중 하나다. (나머지 하나는 프로토타입)

1. 순수 함수
2. 사이드이펙트 방지
3. 단순한 함수의 구성
4. 함수형 언어들: Haskell, Scala, Lisp, F Sharp, ...

이어서..

자바스크립트가 함수형을 지원하는 기능들

자바스크립트에서 함수는 일급객체이다.

high order funtion

  1. 함수를 파라미터로 전달받는 함수(functions as arguments) => Array.prototype.map 을 떠올리면 된다.

  2. 함수를 리턴받는 함수(functions as values) => 커링을 생각하시면 된다.

순수함수

같은 input이라면 항상 같은 리턴값을 가지는 함수.

외부의 값을 변경하지않는다.

*그래서 사이드이펙트가 없고 안전하다.

조합하기좋다. 함수를 다른함수의 인자로 넘길수있다.

모듈화하기좋고 테스트코드작성하기 좋다.

함수들이 단순해진다.

PreviousjavascriptNextcore

Last updated 6 years ago