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;
});
- 오름차순, 내림차순 등을 설정하고 싶으면 부등호 방향을 바꾸면 된다.