📔
Today Joonas Learned
  • Home
  • About Me
  • Chrome Extension
    • CSS injection
  • Design Pattern
    • SOLID 원칙
      • 1. SRP
      • 2. OCP
      • 3. LSP
      • 4. ISP
      • 5. DIP
    • 생성 패턴
      • Singleton Pattern
      • Abstract Factory Pattern
      • Factory Method Pattern
    • 구조 패턴
      • Adapter Pattern
      • Bridge Pattern
      • Composite Pattern
      • Decorator Pattern
      • Facade Pattern
      • Proxy Pattern
    • 행위 패턴
      • Command Pattern
      • Observer Pattern
      • State Pattern
      • Strategy Pattern
      • Template Method Pattern
  • Graphics
    • OpenGL ES
      • 파이프라인
      • 삼각형 그리기
      • 삼각형 움직이기
      • 다각형 그리기
      • 정사면체 그리기
      • [WIP] 마인크래프트 블럭 만들기
      • [WIP] Lighting, Normal Mapping
  • Internet
    • iOS/Safari
  • Javascript
    • async, defer 속성
    • 나머지 매개변수 (Rest parameter)
    • 화살표 함수 표현 (arrow function expression)
    • Template Literals
    • TDZ (Temporal Dead Zone)
    • Spread syntax (...)
  • Network
    • OSI 7 계층 모델
  • Uncategorized
    • 2021/12/07
    • 2020/09/03
    • 2020/09/04
    • 2020/08/22
  • git/VCS
    • Merge 커밋 메시지 수정
Powered by GitBook
On this page

Was this helpful?

  1. Javascript

나머지 매개변수 (Rest parameter)

C언어에서 가변인자와 같은 기능이다. 문법은 다음과 같다.

function f(...args) {
  // ...
}

이것 역시 ES6 부터 추가되었으며, 사용을 권장하고 있다.

이전에도 arguments 라는 예약어가 있었으나, 이건 파라미터 전부에 접근한다. (쉘에서 $1 의 표현을 떠올리면 이해하기 쉽다.)

그럼 얘는 뭐가 다르냐?

arguments는 따로 정의된 특수한 객체지만, 나머지 매개변수는 Array의 인스턴스이다.

그리고 ...<name> 에 해당하는 부분만 Array로 넘어간다.

function f(tag, ...msg) {
   return tag +": " + msg.join('/');
}

f('alphabet', 'a', 'b', 'c');  // "alphabet: a/b/c"
f('primes', 2, 7, 9, 11);      // "primes: 2/7/9/11"

그렇다보니 ...arr 로 넘기고 arr.pop() 과 같은 조작이 가능하다.

Links

Previousasync, defer 속성Next화살표 함수 표현 (arrow function expression)

Last updated 4 years ago

Was this helpful?

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/rest_parameters