이력

  • 2021.11.08 포스팅
  • 2021.11.26 사소한 수정

모든 내용을 상세히 담으려 하지 않았습니다.
제가 모르는 부분이나, “이런 것도 있었어?” 하는 부분, 중요하다고 생각되는 부분,
다시 한번 되새기고 싶은 부분만 기록했습니다.
읽어주셔서 감사합니다.

14.1 프로퍼티 리스트

14.2 배열 여부 반환 - Array.isArray()

  • 모르고 이 메소드를 봤을때는 의아했다. typeof로 확인하면 되지 않나 생각했으나 확인해보니 typeof 로는 배열을 확인할 수 없었다. typeof 배열 을 해보면 object가 나오는데, 그 이유는 배열도 오브젝트이기 때문이다. 배열 오브젝트를 줄여 배열이라고 여기고 있는 것이다.
  • new Array()로 생성된 인스턴스에 할당되지 않으므로 Array.isArray() 형태로 호출해야 합니다(해당 메소드가 prototype에 연결되어 있지 않기 때문)
  • Array.isArray fallback 함수
1
2
3
4
5
6
7
8
if (!Array.isArray) {
  Array.isArray = function(args) {
    return Object.prototype.toString.call(args) === " [Object Array]";
    // toStrting() 메소드에 파라미터를 사용할 수 없어 call을 사용했고
    // Array.isArray()를 호출할 때 지정한 파라미터를 call의 파라미터로 사용함
  };
}
js.log(Array.isArray([1, 2]));

14.3 배열 반복 실행 - forEach()

  • 두 번째 파라미터에 함수가 실행될 때 this로 참조할 오브젝트를 지정한다.
  • forEach 메소드의 반복 횟수는 메소드를 실행하기 전에 결졍된다.
  • 콜백 함수를 반복적으로 호출하므로 break; continue; 를 사용할 수 없다. 따라서 조건에 따라 반복을 종료해야 한다면 비효율적이다.

14.4 forEach와 for 비교

  • for 문은 인덱스에 다양한 조건을 걸 수 있다.
  • for 문은 break, continue를 사용할 수 있다.
  • forEach 문은 undefined 요소를 처리하지 않는다.
  • forEach 문은 인덱스를 통한 배열접근 없이 값을 바로 사용가능하다.
  • forEach 문은 this를 지정할 수 있다.

14.5 반환 값이 false가 될 때까지 반복 - every(), 모두 만족하는지 확인

  • 콜백 함수에서는 false를 반환하지 않으면 디폴트로 true를 반환하기 때문에 false가 되는 코드만 작성해도 된다.

14.6 반환 값이 true가 될 때까지 반복 - some(), 하나라도 만족하는지 확인

  • 콜백 함수에서 true를 반환하지 않으면 디폴트로 false를 반환합니다.

14.7 true를 반환한 엘리먼트 반환 - filter(), 말 그대로 조건에 만족하는 요소만 필터링

14.8 반환 값을 배열로 반환 - map(), 매핑시켜 반환

14.9 엘리먼트 값 누적 - reduce()

  • 두 번째 파라미터(초기값) 지정유무에 따라 로직이 조금 바뀐다.

14.10 엘리먼트 값 누저기: 배열 끝에서 앞으로 누적 - reduceRight()

14.11 일치하는 엘리먼트 인덱스 반환 - indexOf()

  • Strict Equality Comparision 을 한다.

14.12 String.indexOf()와 Array.indexOf()

  • 두 번째 파라미터(시작 인덱스)를 음수로 지정하면 String은 0으로, Array는 length를 더해 처리한다.

14.13 일치하는 엘리먼트 인덱스 반환: 배열 끝에서 앞으로 검색, lastIndexOf()