유사 배열과 Array.prototype.forEach()의 관계 파헤치기

JavaScript 2022. 3. 26. 18:14

2022.03.24 - [Javascript] - (2022. 3. 24.) 유사 배열(Array-like) const divs = document.querySelectorAll('div'); let arr = [] Array.prototype.forEach.call(divs, (element, index) => { arr.push(element.innerText) }) console.log(arr) // ["내용1", "내용2", "내용3", ... ] Function.prototype.call() 메서드를 이용해서 유사 배열에서 배열의 메서드를 사용할 수 있음. 하지만 Array.prototype.forEach() 메서드에도 this를 매개변수(thisArg)로 넣을 수 있는데 두 방법의 차이에 대해..

유사 배열(Array-like)

JavaScript 2022. 3. 24. 21:18

① 배열은 아니지만: 배열의 메서드를 사용할 수 없음 ② 배열의 특성을 갖는 객체 - 숫자로 인덱싱이 되어 있고(0, 1, 2, ...) - length 프로퍼티를 가지고 있음: length 프로퍼티가 없다면 유사 배열로 인식하지 않음 const arrLike = { // 유사배열의 예 0: "내용1" 1: "내용2" 2: "내용3" 3: "내용4" length: 4 } document.querySelectorAll 메서드를 이용해 결과로 얻은 객체는 [[Prototype]]이 Array가 아닌 것에서 알 수 있듯이 유사 배열이므로 Array의 매서드를 사용할 수 없음. ES6부터 NodeList에 forEach 메서드가 추가되었기 때문에 forEach 사용이 가능하지만 IE에서는 NodeList.pro..

Article Thumbnail