[ES6] For of 문 이터러블 규약

DevHwanㅤ

·

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 of는 for in 문의 단점을 보안했다. 배열을 for .. in 문으로 순회하고 원소의 index를 얻어 index + 1 과 같은 연산처리를 하였을 떄

1 + 1 = 2 가 아닌 '1' + 1 ='11'의 결과가 나온다.


1
2
3
4
5
var arr = [123];
 
for(var i in arr){
    console.log(i + 1// 11, 21, 31
}
cs


for .. of 문은 위의 문제점을 개선하였고, 배열 순회시에 직관적으로 원소의 값만 전달한다.

1
2
3
4
5
6
7
let arr =[102030];
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