티스토리 뷰

Programming language/javascript

for of 구문

hello-world 2022. 6. 22. 17:54
728x90
반응형

for of 구문 

for (variable of iterable) {
  statement
}

for...of 명령문은 반복가능한 객체 Array, Map, Set, String, TypedArray, arguments 객체 등에 대해서

반복하고 개별 속성값에 실행문이 있는 사용자 정의 루프를 생성한다.

 

Array 예)

let iterable = [10, 20, 30];

for (let value of iterable) {
  console.log(value);
}
// 10
// 20
// 30
 

String 예)

let iterable = "boo";

for (let value of iterable) {
  console.log(value);
}
// "b"
// "o"
// "o"

Map 예)

let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);

for (let entry of iterable) {
  console.log(entry);
}
// [a, 1]
// [b, 2]
// [c, 3]

for (let [key, value] of iterable) {
  console.log(value);
}
// 1
// 2
// 3

 

Set  예)

let iterable = new Set([1, 1, 2, 2, 3, 3]);

for (let value of iterable) {
  console.log(value);
}
// 1
// 2
// 3
 

 

Dom 컬렉션 예)

NodeList 같은 DOM 컬렉션에 대해 반복: 

// 주의: 이는 NodeList.prototype[Symbol.iterator]가
// 구현된 플랫폼에서만 작동합니다
let articleParagraphs = document.querySelectorAll("article > p");

for (let paragraph of articleParagraphs) {
  paragraph.classList.add("read");
}
 
 

For in 과 For of 의 차이점 

for in 루프는 객체의 모든 열거가능한 속성에 대해 반복하기에 최상위 객체도 호출된다.

for of 구문은 컬렉션 전용. 모든 객체보다는, [Symbol.iterator] 속성이 있는 모든 컬렉션 요소에 대해 이 방식으로 반복.

 

예시 : 

Object.prototype.objCustom = function () {};
Array.prototype.arrCustom = function () {};

let iterable = [3, 5, 7];
iterable.foo = "hello";

for (let i in iterable) {
  console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}

for (let i of iterable) {
  console.log(i); // logs 3, 5, 7
}

 

참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/for...of

 

for...of - JavaScript | MDN

for...of 명령문은 반복가능한 객체 (Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복하고 각 개별 속성값에 대해 실행되는 문이 있는 사용자 정의 반복 후크를 호출하는 루프를

developer.mozilla.org

 

728x90
반응형
댓글