cbw1030
기록하는 공간
cbw1030
전체 방문자
오늘
어제
  • 전체보기 (101)
    • Programming (99)
      • Java (19)
      • Servlet (10)
      • Spring Framework (13)
      • Javascript (22)
      • AWS (2)
      • 네트워크 (8)
      • 데이터베이스 (13)
      • 리눅스 (3)
      • 블록체인 (7)
      • 용어 정리 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Brightics Studio
  • beautifulsoup
  • 브라이틱스
  • 차원축소
  • 데이터 사이언스
  • 브라이틱스 스튜디오
  • javascript
  • 데이터분석
  • react
  • 브라이틱스 스튜디오 사용법
  • 브라이틱스 튜토리얼
  • web
  • 삼성SDS 브라이틱스
  • 삼성SDS
  • Brightics AI
  • 머신러닝
  • 생활코딩
  • 인공지능
  • Brightics
  • 크롤링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cbw1030

기록하는 공간

Programming/Javascript

[Javascript] Rest 파라미터

2019. 2. 18. 15:08
반응형

Rest 파라미터 구문은 정해지지 않은 수 인수를 배열로 나타날 수 있게 한다.

말이 어려우니 예시를 보도록 하자.

function sum(...theArgs) {

return theArgs.reduce(previous,current) {

return previous + current;

});

}


console.log(sum(1, 2, 3)); // expected output: 6 console.log(sum(1, 2, 3, 4)); // expected output: 10


함수의 마지막 인자 앞에 ... 를 붙여 모든 나머지 인수를 대체한다. 마지막 파라미터만 "Rest 파라미터" 가 될 수 있습니다.

function foo(a, b, ...theArgs) {

console.log(a);

console.log(b);

console.log(theArgs);

}


foo(1, 2, 3, 4, 5, 6, 7);

// expected output :

// a : 1

// b : 2

// theArgs = [3, 4, 5, 6, 7]

주의할 점이 있다. Rest 파라미터는 무조건 인자 마지막에 써야한다. 

function foo(...rest, a, b, c) {}; 이런식으로 사용할 수 없다. 



Rest 파라미터와 arguments의 차이

· arguments 객체는 실제 배열이 아니기 때문에 배열 메서드(map, forEach 등)를 사용할 수 없다.

· arguments 객체는 함수로 전달된 인자 모두를 포함한다.

· Rest 파라미터는 실제 배열로 배열 메서드를 사용할 수 있다.



arguments를 배열로 바꾸는 방법 3가지

function foo(a, b) {

// 첫 번째

var arr = Array.prototype.slice.apply(arguments);

// 두 번째

var arr = [].slice.apply(arguments);

// 세 번째

var arr = Array.from(arguments);


var first = arr.shift(); // 된다. 배열로 변했으므로 0번째 인자를 반환

}

위의 세 가지를 알고 있으면 코딩을 하는데 상당히 효율적일 것 같다.





p.s. 가끔 코드블럭에 주석을 달면 그 아랫줄도 주석처리가 되는거 같다. ..

반응형
저작자표시 (새창열림)

'Programming > Javascript' 카테고리의 다른 글

[Javascript] this 이것은 무엇인가  (0) 2019.02.25
[Javascript] hoisting & scope 호이스팅과 스코프 (ES5, ES6 비교)  (0) 2019.02.25
[Javascript] insertAdjacentElement 함수에 대해 알아보자  (0) 2019.02.20
[Javascript] 유용한 배열 메서드 6가지(forEach, map, some, every, filter, reduce)  (0) 2019.02.18
[Javascript] 유사배열 arguments 객체  (0) 2019.02.17
    'Programming/Javascript' 카테고리의 다른 글
    • [Javascript] hoisting & scope 호이스팅과 스코프 (ES5, ES6 비교)
    • [Javascript] insertAdjacentElement 함수에 대해 알아보자
    • [Javascript] 유용한 배열 메서드 6가지(forEach, map, some, every, filter, reduce)
    • [Javascript] 유사배열 arguments 객체
    cbw1030
    cbw1030

    티스토리툴바