16,17일차 TIL 210323 & 210324

1. 16,17일차 진행한 underbar sprint 를 하며 알게 된 것

  • let _start = start || 0 : start가 undefined 인 경우, start는 0이다.
  • reduce 는 return 된 것이 acc 값이 된다.
  • 고차함수가 내부에서 반복될경우 중간에 break는 되지 않는다.
  • 클로저 란 ? 함수와 함수가 선언된 어휘적 환경의 조합. 내부 함수가 외부 함수안에 선언된 변수에 접근할 수 있다. 내부 함수를 클로저 함수라고 부른다.

2. 비동기 호출이란 ?

  • 우리가 앞서배웠던건 대부분 동기 호출이었다.
  • 콜백을 연결시킬때는 함수 자체를 연결해야함. 실행시키는 것이 아니다.
  • blocking = 전화 / 하던일을 멈추고 받아야 한다/ 요청에 대한 결과가 동시에 일어난다
  • non-blocking = 문자 / 확인 후, 나중에 답장 할 수 있다/ 요청에 대한 결과가 동시에 일어나지 않는다.
  • 비동기의 주요 사례 : DOM Element의 이벤트 핸들러, 타이머(setTimeout) , 서버에 자원 요청 및 응답
  • setTimeout(callback, millisecond) : 일정시간 후에 함수를 실행
  • setInterval(callback, millisecond) : 일정 시간의 간격을 가지고 함수를 반복적으로 실행
  • clearInterval(timerId) : 반복실행 중인 타이머를 종료

3. array.sort()

  • sort() 메소드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다.
  • 원본이 정렬된다. 복사본이 만들어 지지 않는다.
  • 숫자는 문자열로 변환되기 때문에 ‘80’은 유니코드 순서에서 ‘9’앞에 온다.
  • 때문에 함수를 이용해서 정렬할 수 있다.
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);

// [1, 2, 3, 4, 5]
  • 객체의 속성 기준으로도 정렬이 가능하다.
items.sort(function (a, b) {
  if (a.value > b.value) {
    return 1;
  }
  if (a.value < b.value) {
    return -1;
  }
  // a must be equal to b
  return 0;
});
  • 오름차순, 내림차순 등을 설정하고 싶으면 부등호 방향을 바꾸면 된다.

Updated: