Array 생성자 함수
꼭 new 연산자와 함께 호출하지 않아도 배열을 생성하는 생성자 함수로 동작한다.
생성자 함수 내부에서 new.target
을 확인하기 때문!
Array와 Array.of의 차이
Array 생성자 함수는 인수로 숫자 하나를 전달받으면 해당 인수를 length로 갖는 빈(희소) 배열을 생성한다.
Array.of는 숫자 하나를 전달해도 그 인수를 요소로 갖는 배열을 생성한다.
Array.from 이란
Array.from에 length만 존재하는 유사 배열 객체를 전달하면 undefined
를 요소로 채운다.
첫 번째 인수로 전달한 유사 배열 객체에 의해 배열의 요소값과 인덱스를 순차적으로 전달하면서 호출하고,
두 번째 인수로 전달한 콜백 함수의 반환값으로 구성된 배열을 반환한다.
유사 배열(array-like) 객체는 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고, length 프로퍼티를 갖는 객체를 말한다.
// 유사 배열 객체를 변환하여 배열 생성
Array.from({ length: 2, 0: 'a', 1: 'b' }); // ['a', 'b']
이터러블(iterable) 객체는 스프레드 문법과 배열 디스트럭처링 할당의 대상으로 사용할 수 있는 객체를 말한다.
ES6에서 제공하는 빌트인 이터러블로는 Array, String, Map, Set, DOM 컬렉션(NodeList, HTMLCollection), arguments 등이 있다.
// 이터러블을 변환하여 배열 생성. 문자열은 이터러블
Array.from('Hello'); // ['H', 'e', 'l', 'l', 'o']
문자열 한 글자씩 배열 만들기
1. Array.from
사용
2. 전개(스프레드) 연산자 ...
사용
3. String.prototype.split()
메서드 사용
Reference >
- 모던 자바스크립트 Deep Dive p.501-503