스프린트/im-sprint-underbar 3

im-sprint-underbar_nightmare(나중)

memoize 더보기 // _.memoize는 callback 함수에 메모이제이션(memoization)을 적용합니다. // 메모이제이션은 이미 해결한 문제는 다시 풀지 않는 기법입니다. // 함수의 호출은 항상 어떤 상태로부터 시작합니다. // 함수의 호출과 함께 전달받은 인자들 또는 함수의 실행에 영향을 미치는 전역변수들이 이 상태를 결정합니다. // 같은 상태에서 출발한 함수는 항상 같은 결과를 리턴(해야)합니다. // 예를 들어, 아래의 함수 add는 두 인자의 값이 바로 함수의 상태입니다. // function add(a, b) { // return a + b; // } // add(3, 5)는 항상 8을 리턴하고, add(2, 7)은 항상 9를 리턴합니다. // 함수의 상태마다 하나의 문제가 ..

im-sprint-underbar_advanced(나중)

기술 면접에서 클로져(closure) 대해서 설명하라는 질문을 받으면 어떻게 대답하시겠습니까? (실제로 물을 수 있는 질문입니다.) 복습을 위해 아래에 간단하게 정리하였습니다. * 정의: 함수와 함수가 선언된 어휘적 환경(lexical environment)의 조합 * 특징: 내부 함수가 외부 함수 안에 선언된 변수에 접근할 수 있다. 내부 함수를 클로저 함수라고 부르기도 한다. * 응용: namespacing, privacy, function factory, partially applied functions, ... * * 클로저의 특징을 활용해 다양한 형태의 함수를 구현할 수 있습니다. * * 이를 활용하여 기존 함수가 여러 번 실행되면 결과가 변동되는 함수를, 한 번 리턴된 값만 리턴하게 하는 함수..

im-sprint-underbar_bareMinimum

01_bareMinimum.js 더보기 'use strict' /** * underbar 스프린트에 오신 것을 환영합니다! * * 여러분은 자바스크립트를 보다 효율적으로 사용하기 위해서 만들어진 underscore.js 라이브러리를 * 비슷하게 구현하면서 자바스크립트의 문법을 더욱 깊게 이해하는 시간을 가지게 됩니다. */ // _.identity는 전달인자(argument)가 무엇이든, 그대로 리턴합니다. // 이 함수는 underbar의 기능 구현 및 테스트를 위해 재사용되는 함수입니다. _.identity = function (val) { // TODO: 여기에 코드를 작성합니다. return val } /** * COLLECTIONS * =========== * collection은 영어로 '모음..