Underbar(Underscore)

이동환·2020년 8월 18일
1

TIL

목록 보기
14/74

Underbar

Underbar는 배열, 객체를 다루는 라이브러리이다. Underbar의 모티브가 되는 라이브러리로는 underscore.js 라고 합니다. 오늘은 우리가 많이 사용하고 있는 고차함수들이 어떻게 원초적인(?)코드로 작성이 되었는지 만들어봤습니다.

언더바과제를 공부하면서 어려웠던 부분은 _.each와 reduce...(아직도 어렵다...)

또 이외에 공부하다가 배운것

  • This
  • rest paramether & spread parameter
  • arguments
  • parameter length

this가 가르키는것.

(this 는 아직 더 공부를 해야함으로, 내일 좀 더 자세하게 작성하도록 하겠습니다 !!)

  1. window
    this가 전역에서 사용되어질때 또는, 함수안에서 사용되어질때.
//전역에서 사용될 때
var name = 'DH';
console.log(this.name); // 'DH'
//함수에서 사용될 때
function foo(){
  console.log(this.name) //'DH'
}

rest paramether & spread parameter

부끄럽지만, rest paramether 와 spread parameter를 오해했었다. 나는 둘 다 같은 것인줄 알았다... 그 이유는 사용 방법이 같기 때문이다.
둘다 사용할때, ...arg 와 같이 사용된다.
여기서 spread parameter는 말 그대로 펴바르듯, 배열에 있는 요소하나 하나를 인자르 보내는것이고,
rest parameter는 수많은 인자를 다 받기보다는 ...arg 와 같이 한번에 다 담을 수 있는것이다. 오해하지말자... 하하하 :)

parameter length

함수에서 몇가지의 파라미터를 받을때, 라는 조건문을 만들때 사용했던 방법이다.

let func = function(x,y,z){
  return x+y+z;
}
console.log(func.length) // 3

함수.length를 하게되면 그 함수가 몇가지 파라미터를 받는지 알 수 있다.

arguments

이 전달인자 arguments도 비슷하다. 그러나 좀 더 심오하고 배울것이 많다.
우선 정의는 이렇다.
객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체입니다.(from MDN)

참고: "Array 형태"란 arguments가 length 속성과 더불어 0부터 인덱스 된 다른 속성을 가지고 있지만, Array의 forEach, map과 같은 내장 메서드를 가지고 있지 않다는 뜻입니다.

이 arguments는 파라미터를 담아 놓은 배열과 같다. 그래서 사람들은 유사배열이라고 부른다. 오늘 내가 습득한것은 arguments도 length라는 메소드를 사용하여 몇가지의 인자를 받는지를 알 수 있다는것이다. 하지만 위와 조금 다른점이 있다. arguments는 몇가지의 인자들이 들어올지 모를때, 사용 할 수 있다는것이다.

오늘은 여기까지 적고, 기회가 되면 좀 더 정확하게 적어보겠다.

profile
UX를 개선하는것을 즐기고 새로운것을 배우는것을 좋아하는 개발자입니다.

0개의 댓글