[부트캠프] JavaScript 6일차

RedPanda·2022년 7월 26일
0

필기 내용

<배열>

  • 메소드 정리 :
    -- push(), pop() = 파괴적 메소드이며, 리턴은 해당 인자를 인덱스로 하는 요소이다.
    -- unshift() = 배열 앞에 해당 인자들을 추가시키고 배열 길이를 리턴
    -- shift() = 배열의 첫번째 요소를 삭제하고 길이를 리턴
    -- arr1.concat(arr2) = 배열을 합쳐 새로운 배열 리턴
    -- splice(시작ind, 제거요소 개수, 삽입 요소들) = 배열 중간에 요소를 추가하거나 제거함.(추 가시 시작 인덱스부터 추가됨)
    -- slice(start, end-1) = 시작 인자부터 끝인자 전까지의 배열 복사
    -- join() = 배열의 요소 사이에 인자를 넣어 새로운 문자열을 리턴
    -- reverse() = 배열 뒤집기
    -- fill(element, start, end-1) = 인자로 요소를 변환 (요소가 하나면 전부 채움)
    -- sort() = 오름차순 정렬, 내림차순을 원하면 reverse()를 해준다. (callback으로 비교하여 true면 오름차순, false면 내림차순을 리턴하는 방법도 있다.)
    -- arr.forEach(callback) = 배열의 요소들을 callback으로 변환시켜 배열을 바꾼다.
    -- arr.map(callback) = 배열로 리턴
    -- arr.filter(callback) = 콜백 조건에 true인 요소만 배열로 만들어 리턴
    -- arr.reduce((callback(누산기, 요소, ind, ...) =>{},초기화값)) = 초기화값이 누산기에 들어가 계산 후 누산기에 누적.
    -- arr.find(callback) = callback 조건에 만족하는 첫요소를 리턴

<스프레드 문법>

  • 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만듦.(배열, 문자열, 객체...) -> ex. console.log(...[1,2,3]) => 1 2 3

  • 객체는 이터러블이 아니기 때문에 스프레드 문법을 사용하지 못한다.

  • 이터러블에 대해 반복하는 경우에 스프레드 문법을 사용하면 반복문을 사용하지 않아도 된다. (ex. Math.max(...arr); => 3 / foo(...[1,2,3]) => 배열을 쉽게 파라미터로 넣을 수 있다. / const arr = [...[1,2],...[3,4]] => 합쳐서 새로운 배열을 편하게 생성할 수 있다.)

<비동기 프로그래밍>

  • JS 엔진은 하나의 실행 컨텍스트 스택을 가짐. -> 두 개 이상의 함수를 엔진에서 함께 실행할 수 없음.

  • eventHandler 또한 비동기 함수이다.

// 자바스크립트 엔진

  • 콜 스택 : 실행 컨텍스트 추가,제거되는 실행 컨텍스트 스택

  • 힙 : 객체가 저장되는 메모리 공간

// 비동기 처리

  • 테스크 큐 : 비동기 함수의 콜백 또는 이벤트 핸들러가 일시적으로 보관되는 영역

  • 이벤트 루프 : 콜스택이 비어있고 테스크 큐에 대기중인 함수가 있다면 이벤트 루프는 테스크 큐에서 대기중인 함수를 콜스택으로 이동시킴

여담

드디어 비동기 프로그래밍에 들어간다. 아직 초입이지만 이전에 무작정 코드만 쓰고 넘어갔던 때에 비하면 이해하고 넘어간다는 생각이 들었다.

프로젝트에서 비동기가 얼마나 쓰일지는 모르겠지만 이해하고 쓸만큼 공부해놔야겠다.

profile
끄적끄적 코딩일기

0개의 댓글