[ES6] For of 문 이터러블 규약
돌딤
2018. 9. 2. 06:02
For of
for.. of문은 기존에 배열이나 함수의 arguments 객체와 같은 컬렉션을 순회하는 for..in 문이나 forEach()함수 같은 역활을 한다.
문자열을 한 글자씩 잘라 순회하는 것도 가능해졌다. 이터러블 규약을 따라야만 하고 for..of 문으로 순회하려면 @@iterator 메서드를
내장한 객체이거나, 직접 @@iterator 메서드를 구현해야 한다. @@iterator : Sybol.irerator() 줄임말.
1 2 | for(variables of iterable){ } | cs |
for of는 for in 문의 단점을 보안했다. 배열을 for .. in 문으로 순회하고 원소의 index를 얻어 index + 1 과 같은 연산처리를 하였을 떄
1 + 1 = 2 가 아닌 '1' + 1 ='11'의 결과가 나온다.
1 2 3 4 5 | var arr = [1, 2, 3]; for(var i in arr){ console.log(i + 1) // 11, 21, 31 } | cs |
for .. of 문은 위의 문제점을 개선하였고, 배열 순회시에 직관적으로 원소의 값만 전달한다.
1234567 let arr =[10, 20, 30];arr.add = 100;for(let value of arr){console.log(value) //10 20 30}cs
배열에 임의의 속성을 추가하여 순회하여도 정확히 배열 원소의 값만 전달한다. // arr.add
반응형
'JavaScript > Es6' 카테고리의 다른 글
[ES6] Module (0) | 2018.10.04 |
---|---|
[ES6] Promise (0) | 2018.10.03 |
ES6 에서 변수 선언 let (0) | 2018.06.20 |