값으로 다룰 수 있다.변수에 담을 수 있다.함수의 인자로 사용될 수 있다.함수의 결과로 사용될 수 있다.함수를 값으로 다룰 수 있다.조합성과 추상화의 도구함수를 값으로 다루는 함수함수를 만들어 리턴하는 함수 (클로저를 만들어 리턴하는 함수)클로저란?함수가 인자를 기억하
key로 접근을 통해 순회 가능key값으로 접근이 불가능함key값으로 접근이 불가능함.ES6에 추가된 심볼객체의 키로 사용될 수 있는 심볼arr, set, map을 for .... of로 접근할 수 있는 이유!이터러블이터레이터를 리턴하는 \[Symbol.iterator
이터레이터이자 이터러블을 생성하는 함수
모든 값들을 함수의 리턴 값에 해당하는 값으로 대체해 반환이터러블에서 조건에 해당하는 값들만 모은 이터러블을 반환하는 함수값을 축약하는 함수이터러블 값을 하나로 축약하는 역할재귀적으로 동작함.
중첩된 함수들 (map, filter, reduce)을 코드 가독성을 높여 사용할 수 있도록 결과 값을 인자로 넘기는 함수즉시 값을 이끌어냄.함수들이 나열된 합성된 함수 자체를 만드는 함수값을 이끌어내는 go와 달리 함수를 이끌어냄함수를 리턴하는 함수함수를 값으로 다루
느긋한 계산법제너레이터/이터레이터 프로토콜을 기반으로 구현array(infinity)라는 무한한 크기의 배열이 있다면 앞의 10개의 배열을 slice를 해야할 때 어떤 일이 발생할까?분명 array를 생성하는데 시간이 무한하게 걸리므로 브라우저가 터져버릴 것이다.이는
아래와 같이 users는 Json 형태의 객체로 선언이 되어있다.users 데이터를 가공하는 과정에서 go 혹은 pipe 함수를 통해 결과를 가독성이 좋고 효율적으로 lazy하게 평가할 수 있다.
콜백 함수는 인자와 함수를 받아 처리하므로 여러가지 작업을 처리하는 과정에서 구조가 복잡해짐promise를 활용하면 then을 통해 그 다음에 실행될 함수를 실행할 수 있다.두 함수의 가장 큰 차이는 Promise는 비동기 연산을 1급 값으로 다룬다.무슨 의미인가? r
모나드란?아래와 같은 함수의 합성을 안전하게 할 수 있도록하는 개념Promise를 이용해 비동기 환경에서 함수를 안전하게 합성하도록 도와줌.위의 코드를 보면 log(f(g()));는 원치 않는 결과에 대해 log를 통해 평가까지 이루어지므로 안전하지 않음.하지만, ma
take와 map은 기본적으로 Promise를 이용해 비동기로 처리해주는 로직이 내부에 필요하다.그렇기에 map에서는 받은 함수를 Promise인지 판별해 then을 통해 값을 가져올 수 있게 해줘야하고, take 또한 마찬가지로 비동기 상황에서 연산의 순서를 보장하는
현재는 싱글스레드의 특성상 한 작업이 끝나면 다음 작업으로 넘어가는 식으로 작업한다. 하지만 한꺼번에 병렬적으로 연산하면 부하는 커지지만 훨씬 빠른 속도로 처리할 수 있다.기존의 reduce는 배열의 하나씩 꺼내서 acc에 더해주는 식으로 연산했다면, C.reduce는