아... 너무 졸립다... ㅜㅠ
그래서 오늘은 진짜 짧게 쓸 주제 하나 찾아서 쓰려한다.
그 주제는 바로
for-of
사실 처음부터 그냥 쓰려고 했으면 쓰기 어렵고, 길게 써야 하나
우리는 사실 이미 http://ggoals.tistory.com/32 에서 iterable protocol
즉, iterable object 에 대해서 배운적이 있다.
for-of 는 iterable object 에 대해서만 반복문을 실행시켜준다.
Array-like 에서 설명했던 코드를 다시 가져와보면
let values = {0: 'aaa', 1: 'bbb', length: 2}; for( var key in values) { console.log( key + ": " + values[key]); } for(var k = 0; k < values.length; k++) { console.log(values[k]); } // error 발생! // sample.html:xx Uncaught TypeError: values[Symbol.iterator] is not a function for( var key of values) { console.log( key + ": " + values[key]); }
Array-like object 는 iterable 오브젝트가 아니다. ( Symbol iterator 및 next() 메서드 프로퍼티가 없으니깐 ) 그렇기 때문에 위 주석에 적은 에러가 난다.
sample
for(let value of [10, 20, 30]) { console.log(value) } for(let value of "test") { console.log(value) } let nodes = docuemnts.querySelectorAll('li'); for(let node of nodes) { console.log(node.textContent); } let values = [ {item: '선물1', amount: {apple: 10, candy:20}}, {item: '선물2', amount: {apple: 30, candy:40}} ]; for(let {item:one, amount: {apple:two, candy:three}} of values) { console.log(one + two + three); //선물11020 //선물23040 } let sports = { soccer : '축구', baseball : '야구' }; let keyList = Object.keys(sports); for(let key of keyList) { ... }
'ECMAScript 2015, ECMAScript 6th Edition' 카테고리의 다른 글
11. Array Object (0) | 2016.09.27 |
---|---|
10. Object assign (0) | 2016.09.27 |
8. Enhanced Object ProPerties (0) | 2016.09.15 |
7. destructuring (0) | 2016.09.13 |
0. 김영보 선생님 강의 후기 (0) | 2016.09.11 |