Underbar는 배열, 객체를 다루는 라이브러리이다. Underbar의 모티브가 되는 라이브러리로는 underscore.js 라고 합니다. 오늘은 우리가 많이 사용하고 있는 고차함수들이 어떻게 원초적인(?)코드로 작성이 되었는지 만들어봤습니다.
언더바과제를 공부하면서 어려웠던 부분은 _.each와 reduce...(아직도 어렵다...)
또 이외에 공부하다가 배운것
(this 는 아직 더 공부를 해야함으로, 내일 좀 더 자세하게 작성하도록 하겠습니다 !!)
//전역에서 사용될 때 var name = 'DH'; console.log(this.name); // 'DH' //함수에서 사용될 때 function foo(){ console.log(this.name) //'DH' }
부끄럽지만, rest paramether 와 spread parameter를 오해했었다. 나는 둘 다 같은 것인줄 알았다... 그 이유는 사용 방법이 같기 때문이다.
둘다 사용할때, ...arg 와 같이 사용된다.
여기서 spread parameter는 말 그대로 펴바르듯, 배열에 있는 요소하나 하나를 인자르 보내는것이고,
rest parameter는 수많은 인자를 다 받기보다는 ...arg 와 같이 한번에 다 담을 수 있는것이다. 오해하지말자... 하하하 :)
함수에서 몇가지의 파라미터를 받을때, 라는 조건문을 만들때 사용했던 방법이다.
let func = function(x,y,z){ return x+y+z; } console.log(func.length) // 3
함수.length를 하게되면 그 함수가 몇가지 파라미터를 받는지 알 수 있다.
이 전달인자 arguments도 비슷하다. 그러나 좀 더 심오하고 배울것이 많다.
우선 정의는 이렇다.
객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체입니다.(from MDN)
참고: "Array 형태"란 arguments가 length 속성과 더불어 0부터 인덱스 된 다른 속성을 가지고 있지만, Array의 forEach, map과 같은 내장 메서드를 가지고 있지 않다는 뜻입니다.
이 arguments는 파라미터를 담아 놓은 배열과 같다. 그래서 사람들은 유사배열이라고 부른다. 오늘 내가 습득한것은 arguments도 length라는 메소드를 사용하여 몇가지의 인자를 받는지를 알 수 있다는것이다. 하지만 위와 조금 다른점이 있다. arguments는 몇가지의 인자들이 들어올지 모를때, 사용 할 수 있다는것이다.
오늘은 여기까지 적고, 기회가 되면 좀 더 정확하게 적어보겠다.