{"componentChunkName":"component---src-templates-blog-post-js","path":"/javascript/es6-spread-rest-연산자/","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":"14e1d565-cd48-5edd-8544-6576b5d69587","excerpt":"ES6 Spread & Rest 연산자 ES6부터 가변 인자를 표현할  키워드가 추가 되었다. 기존에는 배열 값을 함수 임자로 넘기려면  내장 메서드나  를 통해 변수를 받아서, 이를 Array.prorotype.slice…","html":"<p><img src=\"/assets/es6.png\" alt=\"ES6 Spread &#x26; Rest 연산자\" title=\"ES6 Spread &#x26; Rest 연산자\"></p>\n<p>ES6부터 가변 인자를 표현할 <code class=\"language-text\">...</code> 키워드가 추가 되었다. 기존에는 배열 값을 함수 임자로 넘기려면 <code class=\"language-text\">apply()</code> 내장 메서드나 <code class=\"language-text\">argments</code> 를 통해 변수를 받아서, 이를 Array.prorotype.slice() 함수로 잘라내야 했지만 <code class=\"language-text\">...</code> 키워드를 이용하면 여러 개의 인자를 넘길 수 있다. 이는 Spread 연산자라고 한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">coffee</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">americano<span class=\"token punctuation\">,</span> espresso</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> americano <span class=\"token operator\">+</span> espresso\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">const</span> data <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>\n<span class=\"token keyword\">const</span> result <span class=\"token operator\">=</span> <span class=\"token function\">coffee</span><span class=\"token punctuation\">(</span><span class=\"token operator\">...</span>data<span class=\"token punctuation\">)</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">)</span> <span class=\"token comment\">// 30</span></code></pre></div>\n<p>위와 같이 배열에 있는 요소를 자동으로 인자로 치환하여 coffee 함수를 호출한다. 또한, 아래와 같이 Spread 연산자를 활용하여 배열을 작성할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> coffee1 <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>\n<span class=\"token keyword\">const</span> coffee2 <span class=\"token operator\">=</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>\n<span class=\"token keyword\">const</span> result <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">...</span>coffee1<span class=\"token punctuation\">,</span> <span class=\"token operator\">...</span>coffee2<span class=\"token punctuation\">,</span> <span class=\"token number\">50</span><span class=\"token punctuation\">]</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">)</span> <span class=\"token comment\">// [0,10,20,30,40,50]</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">)</span> <span class=\"token comment\">// 6</span></code></pre></div>\n<p>문자열을 각 문자로 배열을 만들기 위하여 Spread 연산자를 활용할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> result <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">...</span><span class=\"token string\">\"abcde\"</span><span class=\"token punctuation\">]</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">)</span> <span class=\"token comment\">// [\"a\",\"b\",\"c\",\"d\",\"e\"]</span></code></pre></div>\n<p>나머지(Rest) 연산자는 함수의 마지막 파라미터에 ”…” 를 붙이는데, 아래와 같이 사용할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">coffee</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">americano<span class=\"token punctuation\">,</span> espresso<span class=\"token punctuation\">,</span> <span class=\"token operator\">...</span>arr</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>arr<span class=\"token punctuation\">)</span> <span class=\"token comment\">// 30,40,50;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token function\">coffee</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></code></pre></div>","tableOfContents":"","wordCount":{"words":85},"fields":{"slug":"/javascript/es6-spread-rest-연산자/","image":"/assets/es6.png","faq":[]},"frontmatter":{"title":"ES6 Spread & Rest 연산자","date":"2020년 11월 19일","dateISO":"2020-11-19T18:15:44.771Z","updatedISO":null,"category":"javascript","description":"ES6부터 가변 인자를 표현할 '...' 키워드가 추가 되었다. 기존에는 배열 값을 함수 임자로 넘기려면 apply() 내장 메서드나 argments 를 통해 변수를 받아서, 이를 Array.prorotype.slice() 함수로 잘라내야 했지만 '...' 키워드를 이용하면 여러 개의 인자를 넘길 수 있다. 이는 Spread 연산자라고 한다.","tags":["ES6","Spread","Rest","JavaScript","ECMAScript6"]}}},"pageContext":{"slug":"/javascript/es6-spread-rest-연산자/","previous":{"fields":{"slug":"/javascript/es6-디스트럭처링-destructuring/"},"frontmatter":{"title":"ES6 디스트럭처링(Destructuring)","tags":["ES6","디스트럭처링","Destructuring","JavaScript","ECMAScript6"]}},"next":{"fields":{"slug":"/javascript/es6-for-of-루프/"},"frontmatter":{"title":"ES6 For ... Of 루프","tags":["For ... Of 루프","ES6","ECMA2015","JS"]}}}},"staticQueryHashes":["213619243","3262363727"]}