{"componentChunkName":"component---src-templates-blog-post-js","path":"/javascript/es6-for-of-루프/","result":{"data":{"site":{"siteMetadata":{"title":"Bottlehs Tech Blog","description":"웹·앱·AI 개발자 전병훈(bottlehs)의 기술 블로그. AI·LLM, JavaScript·Vue, Spring Boot, 알고리즘, 블록체인 실무 가이드를 다룹니다","siteUrl":"https://www.bottlehs.dev","author":{"name":"Jeon Byung Hun","summary":"개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트"},"social":{"github":"bottlehs","codepen":"bottlehs"}}},"markdownRemark":{"id":"620d93f2-583b-5bcd-8acb-872e7cacf330","excerpt":"ES6 For ... Of 루프 기존 자바스크립트에서는 for, for..in 루프만 사용할 수 있었는데, for..of는 iterator 형태로 순환할 수 있는 기능을 제공한다. iterator는 어떤 데이터 집합을 순서대로 접근할 때 사용된다. for..of 는 Symbol…","html":"<p><img src=\"/assets/es6.png\" alt=\"ES6 For ... Of 루프\" title=\"ES6 For ... Of 루프\"></p>\n<p>기존 자바스크립트에서는 for, for..in 루프만 사용할 수 있었는데, for..of는 iterator 형태로 순환할 수 있는 기능을 제공한다.</p>\n<p>iterator는 어떤 데이터 집합을 순서대로 접근할 때 사용된다. for..of 는 Symbol.iterator를 호출 하는데 배열과 문자열은 이 속성을 제공하고 있다. 즉, 배열을 순서대로 순회하며, 문자열은 문자를 하나씩 접근하게 된다. 또한, 사용자 정의 iterator을 커스텀 객체에 만들 수도 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> coffee <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">10</span><span class=\"token punctuation\">,</span> <span class=\"token number\">20</span><span class=\"token punctuation\">,</span> <span class=\"token number\">30</span><span class=\"token punctuation\">,</span> <span class=\"token number\">40</span><span class=\"token punctuation\">,</span> <span class=\"token number\">50</span><span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> value <span class=\"token keyword\">of</span> coffee<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>value<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// 출력 결과</span>\n<span class=\"token number\">10</span>\n<span class=\"token number\">20</span>\n<span class=\"token number\">30</span>\n<span class=\"token number\">40</span>\n<span class=\"token number\">50</span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> char <span class=\"token keyword\">of</span> <span class=\"token string\">\"coffee\"</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>char<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// 출력 결과</span>\n<span class=\"token string\">\"c\"</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"o\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"e\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"e\"</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>DOM에 접근하여 반복된 리스트를 가져오는데 유용할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token punctuation\">;</span><span class=\"token operator\">&lt;</span>ul<span class=\"token operator\">></span>\n  <span class=\"token operator\">&lt;</span>li<span class=\"token operator\">></span>americano<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>li<span class=\"token operator\">></span>\n  <span class=\"token operator\">&lt;</span>li<span class=\"token operator\">></span>espresso<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>li<span class=\"token operator\">></span>\n<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>ul<span class=\"token operator\">></span>\n\n<span class=\"token keyword\">let</span> nodes <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">querySelectorAll</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"li\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> node <span class=\"token keyword\">of</span> codes<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>node<span class=\"token punctuation\">.</span>textContent<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// 출력 결과</span>\namericano\nespresso</code></pre></div>\n<p><code class=\"language-text\">document.querySelectorAll(\"li\")</code>는 <code class=\"language-text\">li</code> 엘리먼트를 모두 찾아 노드에 설정하는 것이고, 이러한 노드 리스트는 iterator 형태로 순환이 가능하기에 for..of 루프를 활용할 수 있다.</p>\n<p>한편, 오브젝트의 경우, iterator 형태로 순환할 수 없지만, Object keys 메서드를 활용해 이를 구현한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> coffee <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n   <span class=\"token literal-property property\">americano</span><span class=\"token operator\">:</span> <span class=\"token string\">\"아메리카노\"</span><span class=\"token punctuation\">,</span>\n   <span class=\"token literal-property property\">espresso</span><span class=\"token operator\">:</span> <span class=\"token string\">\"에스프레소\"</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">const</span> keys <span class=\"token operator\">=</span> Object<span class=\"token punctuation\">.</span><span class=\"token function\">keys</span><span class=\"token punctuation\">(</span>coffee<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> key <span class=\"token keyword\">of</span> keys<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n   console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>key<span class=\"token punctuation\">,</span> coffee<span class=\"token punctuation\">[</span>key<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// 출력 결과</span>\namericano 아메리카노\nespresso 에스프레소</code></pre></div>\n<p>Object.keys를 활용하면 오브젝트에서 프로퍼티 키를 배열로 반환하게 된다. 이 배열은 iterator 형태로 순환이 가능하기 for..of 루프를 통해 해당 프로퍼티 값을 구한다.</p>","tableOfContents":"","wordCount":{"words":124},"fields":{"slug":"/javascript/es6-for-of-루프/","image":"/assets/es6.png","faq":[]},"frontmatter":{"title":"ES6 For ... Of 루프","date":"2020년 11월 24일","dateISO":"2020-11-24T19:22:59.726Z","updatedISO":null,"category":"javascript","description":"기존 자바스크립트에서는 for, for..in 루프만 사용할 수 있었는데, for..of는 iterator 형태로 순환할 수 있는 기능을 제공한다. iterator는 어떤 데이터 집합을 순서대로 접근할 때 사용된다. for..of 는 Symbol.iterator를 호출 하는데 배열과 문자열은 이 속성을 제공하고 있다. 즉, 배열을 순서대로 순회하며, 문자열은 문자를 하나씩 접근하게 된다. 또한, 사용자 정의 iterator을 커스텀 객체에 만들 수도 있다.","tags":["For ... Of 루프","ES6","ECMA2015","JS"]}}},"pageContext":{"slug":"/javascript/es6-for-of-루프/","previous":{"fields":{"slug":"/javascript/es6-spread-rest-연산자/"},"frontmatter":{"title":"ES6 Spread & Rest 연산자","tags":["ES6","Spread","Rest","JavaScript","ECMAScript6"]}},"next":{"fields":{"slug":"/javascript/es6-프라미스-promise/"},"frontmatter":{"title":"ES6 프라미스(Promise)","tags":["프라미스(Promise)","ES6","ECMA2015","JS"]}}}},"staticQueryHashes":["213619243","3262363727"]}