"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 스프레드 구문과 나머지 매개변수: 차이점은 무엇입니까?

스프레드 구문과 나머지 매개변수: 차이점은 무엇입니까?

2024-11-07에 게시됨
검색:873

Spread Syntax vs. Rest Parameter: What\'s the Difference?

확산 구문 대 Rest 매개변수: 차이점 이해

ES2015의 두 가지 새로운 기능인 확산 구문과 나머지 매개변수는 다음을 수행하는 강력한 방법을 제공합니다. 배열과 객체를 조작합니다. 둘 다 비슷해 보이지만 서로 다른 용도로 사용되며 각각 고유한 기능을 가지고 있습니다.

확산 구문

확산 구문(점 3개 "..."로 표시됨) )를 사용하면 반복 가능 항목(예: 배열 또는 객체)을 다른 반복 가능 항목 내의 개별 요소로 확산하거나 확장할 수 있습니다. 이 기능을 사용하면 여러 배열이나 객체를 새로운 배열이나 객체로 편리하게 병합하거나 결합할 수 있습니다.

예를 들어 다음 코드를 고려해 보겠습니다.

var abc = ['a', 'b', 'c'];
var def = ['d', 'e', 'f'];
var alpha = [ ...abc, ...def ];
console.log(alpha); // alpha == ['a', 'b', 'c', 'd', 'e', 'f'];

이 코드 조각에서 ...abc 및 ... def 확산 구문은 abc 및 def 배열을 개별 요소로 확장하여 두 배열의 모든 요소를 ​​포함하는 새로운 알파 배열을 만듭니다.

Rest 매개변수

반면에 , 나머지 매개변수(식별자 앞에 점 3개 "..."로 표시됨)는 함수에 전달된 나머지 인수를 단일 배열로 수집합니다. 나머지 매개변수는 함수 매개변수 목록의 마지막 매개변수여야 합니다.

작동 중인 나머지 매개변수의 예는 다음과 같습니다.

function sumAll(...numbers) {
  let total = 0;
  for (let num of numbers) {
    total  = num;
  }
  return total;
}

let result = sumAll(1, 2, 3, 4, 5);
console.log(result); // result == 15

이 코드에서 ...numbers 나머지 매개변수는 sumAll 함수에 전달된 나머지 인수(이 경우 1, 2, 3, 4, 5)를 수집하여 다음을 생성합니다. 단일 숫자 배열.

최신 튜토리얼 더>
  • 웹 스크래핑 최적화: JSDOM을 사용하여 인증 데이터 스크래핑
    웹 스크래핑 최적화: JSDOM을 사용하여 인증 데이터 스크래핑
    스크래핑 개발자로서 작업을 수행하기 위해 임시 키와 같은 인증 데이터를 추출해야 하는 경우가 있습니다. 그러나 그렇게 간단하지는 않습니다. 일반적으로 HTML 또는 XHR 네트워크 요청에 있지만 인증 데이터가 계산되는 경우도 있습니다. 이 경우 계산을 리버스 엔지니어링...
    프로그램 작성 2024-11-08에 게시됨
  • React Prop 드릴링: 사용해야 할까요?
    React Prop 드릴링: 사용해야 할까요?
    다양한 상태 관리 전략. React Prop 드릴링은 상위 구성 요소에서 하위 구성 요소로 데이터를 드릴링하는 것입니다. 이는 레벨 전체에서 액세스할 수 있는 데이터를 전달하는 것입니다. 데이터는 다른 프로토콜을 사용하여 데이터를 표시하거나 가져오는 하위 구성 요소로 ...
    프로그램 작성 2024-11-08에 게시됨
  • Angular의 추상 텍스트 콘텐츠
    Angular의 추상 텍스트 콘텐츠
    웹사이트를 개발하는 경우 구성요소 템플릿에 많은 텍스트를 작성할 가능성이 높습니다. 이와 같은 텍스트 작성은 깨지거나 버그가 있는 것이 아니라 장기 실행 프로젝트를 유지 관리하기에는 오히려 지루한 일입니다. 이를 개선하려면 특정 기능에 대한 모든 텍스트가 포함된 파일을...
    프로그램 작성 2024-11-08에 게시됨
  • 실제 기계 학습을 위해 분산 컴퓨팅이 필요한 이유
    실제 기계 학습을 위해 분산 컴퓨팅이 필요한 이유
    PySpark가 전문가처럼 대규모 데이터 세트를 처리하는 데 어떻게 도움이 되는지 PyTorch 및 TensorFlow와 같은 기계 학습 프레임워크는 모델 구축에 매우 적합합니다. 그러나 현실은 거대한 데이터 세트를 다루는 실제 프로젝트의 경우 좋은 모델 그 이상이 필...
    프로그램 작성 2024-11-08에 게시됨
  • Go IoT 플랫폼으로 IoT 데이터 무결성 확보
    Go IoT 플랫폼으로 IoT 데이터 무결성 확보
    번역: Go IoT 개발 플랫폼은 Go 프로그래밍 언어를 사용하여 개발된 무료이고 효율적이며 확장 가능한 사물 인터넷(IoT) 솔루션입니다. 플랫폼은 MQTT, HTTP, WebSocket, COAP, TCP/IP 등의 데이터 전송 프로토콜을 지원하며 JavaScrip...
    프로그램 작성 2024-11-08에 게시됨
  • CLI 앱 게시(Apt 및 YUM 사용)
    CLI 앱 게시(Apt 및 YUM 사용)
    소개 저는 최근 CLI 앱의 팬이 되었습니다. 어쩌면 그것은 내 어린 시절의 터미널(486/33의 DOS와 아버지의 오래된 Apple IIe로 시작)의 매력일 수도 있습니다. 나는 Gen X Commodore64 시대에 비해 너무 늦게 태어났지만 Win...
    프로그램 작성 2024-11-08에 게시됨
  • 실시간 애플리케이션을 위한 Supersonic GPU MelSpectrogram
    실시간 애플리케이션을 위한 Supersonic GPU MelSpectrogram
    Simli에서는 지연 시간을 가장 중요하게 생각합니다. 결국 우리가 추구하는 것은 저지연 비디오입니다. 반면에 오디오 머신러닝에서 가장 많이 사용되는 알고리즘 중 일부는 구현 속도가 매우 느립니다. 분명히 말하면 이러한 구현은 일반적으로 모델 자체를 생성하거나 일괄 추...
    프로그램 작성 2024-11-08에 게시됨
  • Next.js 앱에서 'next-sitemap'을 설치하고 사용하는 방법: 단계별 가이드
    Next.js 앱에서 'next-sitemap'을 설치하고 사용하는 방법: 단계별 가이드
    Next.js로 웹사이트를 구축하는 경우 검색 엔진이 페이지를 효율적으로 검색하고 색인을 생성하기를 원할 것입니다. 이 프로세스를 개선하는 한 가지 방법은 사이트맵을 만드는 것입니다. 사이트맵은 웹사이트의 모든 URL을 나열하는 파일로, Google과 같은 검색 엔진이...
    프로그램 작성 2024-11-08에 게시됨
  • 예제가 포함된 Python 스레딩 모듈에 대한 빠른 가이드
    예제가 포함된 Python 스레딩 모듈에 대한 빠른 가이드
    소개 Python의 스레딩 모듈은 스레드를 생성하고 관리할 수 있는 고급 인터페이스를 제공하여 코드를 동시에 실행할 수 있습니다. 이는 I/O 바인딩 작업과 같이 병렬로 실행될 수 있는 작업에 특히 유용할 수 있습니다. 다음은 스레딩 모듈에서 일반적으로...
    프로그램 작성 2024-11-08에 게시됨
  • ✨ 기여자에서 핵심 프로젝트 유지관리자로: 나의 오픈 소스 여정 ✨
    ✨ 기여자에서 핵심 프로젝트 유지관리자로: 나의 오픈 소스 여정 ✨
    모든 것은 간단한 풀 요청으로 시작되었습니다... 처음 오픈소스의 세계에 뛰어들었던 때가 기억납니다. 나의 초기 목표는 단지 ​​내가 존경하는 프로젝트의 사소한 문제를 해결하는 것이었습니다. 그 작은 기여가 놀라운 여정을 시작하게 될 줄은 꿈에도 몰랐습니다. 1단계: ...
    프로그램 작성 2024-11-08에 게시됨
  • 프로그래밍의 기초: C에 대한 간단한 소개
    프로그래밍의 기초: C에 대한 간단한 소개
    C 언어 기본 사항: 변수 및 유형: 데이터를 저장할 변수를 정의하고 유형은 저장된 데이터 유형을 지정합니다. 입력 및 출력: printf()는 화면에 출력하고, scanf()는 사용자 입력을 읽습니다. 연산자: 산술 및 비교 연산자를 사용하여 연산 및 비교를 수행합니...
    프로그램 작성 2024-11-08에 게시됨
  • Mixins는 어떻게 전통적인 상속 없이 클래스 기능을 향상합니까?
    Mixins는 어떻게 전통적인 상속 없이 클래스 기능을 향상합니까?
    믹스인 이해: 클래스 확장에 대한 모듈식 접근 방식믹스인은 여러 클래스의 구성을 허용하는 소프트웨어 디자인 패턴입니다. 기본 클래스에서 직접 상속하지 않고 기본 클래스의 기능을 확장하는 방법입니다. 이 기술은 상속의 개념과 유사하지만 더 유연하고 세분화된 접근 방식을 ...
    프로그램 작성 2024-11-08에 게시됨
  • JavaScript처럼 PHP에서도 익명 객체를 생성할 수 있나요?
    JavaScript처럼 PHP에서도 익명 객체를 생성할 수 있나요?
    PHP에서 익명 객체 생성자바스크립트에서는 익명 객체를 쉽게 생성할 수 있습니다. 그런데 이 기술을 PHP에도 적용할 수 있나요?용어 설명객체를 논할 때 "익명"이라는 용어는 완전히 정확하지는 않습니다. 오히려 "익명형 객체"라고 불...
    프로그램 작성 2024-11-08에 게시됨
  • Windows Vista의 릴리스 모드에서만 내 프로그램이 충돌하는 이유는 무엇입니까?
    Windows Vista의 릴리스 모드에서만 내 프로그램이 충돌하는 이유는 무엇입니까?
    릴리스 빌드에서만 프로그램이 충돌합니다: 디버깅의 모호함 탐구특이한 "슈뢰딩거의 고양이" 버그에 직면하면 프로그래머가 당황할 수 있습니다. 이 경우, 프로그램은 릴리스 모드에서 빌드되고 명령줄에서 실행될 때만 안정적으로 충돌하며, 비밀스러운 종료 알림...
    프로그램 작성 2024-11-08에 게시됨
  • 파이썬 루프 2
    파이썬 루프 2
    여러분, 안녕하세요! 이것은 Python 루프 시리즈의 두 번째 부분입니다. 1부는 여기에 있습니다: https://dev.to/coderanger08/python-loops-1-5dho 이번 주에는 while 및 for 루프, break 및 pass 문, 범위 함수...
    프로그램 작성 2024-11-08에 게시됨

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3