window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster가 이미 존재합니다') } else { w.LeadBooster = { q: [], on: 함수 (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 함수 (n) { this.q.push({ t: 't', n: n }) }, } } })() 세 가지 유용한 점 - 나머지 점과 JavaScript - The Codest의 스프레드
The Codest
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 산업 분야
    • 핀테크 및 뱅킹
    • E-commerce
    • 애드테크
    • 헬스 테크
    • 제조
    • 물류
    • 자동차
    • IOT
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
뒤로 화살표 뒤로 가기
2019-11-25
소프트웨어 개발

세 개의 유용한 점 - 나머지 점과 JavaScript의 스프레드

루카스 콜코

ECMAScript 2015는 많은 개선 사항이 포함된 많은 뉴스를 가져왔습니다. 오늘은 작업을 더 쉽게 만들어주는 두 가지 기능을 자세히 살펴보겠습니다. 나머지 매개변수와 스프레드 구문을 만나보세요.

나머지 매개 변수

나머지 구문을 사용하면 무한한 수의 인수를 배열로 표현할 수 있습니다. 전달된 모든 인수를 합산하는 함수를 살펴보겠습니다.

const sum = (...args) => args.reduce((prev, current) => prev + current);

console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3)); // 6

스프레드 구문

스프레드 연산자를 사용하면 이터러블 객체를 개별 요소로 확장할 수 있습니다. 이 기능은 나머지 매개변수로 달성한 것과는 반대입니다. 배열, 객체, 세트, 맵 등과 같은 모든 이터러블에 적용할 수 있습니다.

const sum = (x, y, z) => x + y + z;
const numbers = [1, 2, 3];

console.log(sum(...numbers)); // 6

실제 사용 사례의 세 가지 점

배열 복사하기

스프레드 구문은 배열을 복사하는 동안 효과적으로 한 단계 더 깊숙이 이동합니다. 한 수준은 첫 번째 수준의 참조가 복사된다는 의미입니다.

const array0 = [1, [2, 3]];
const array1 = [...array0];

console.log(array1); // [1, [2, 3]]

고유한 요소 배열 만들기

고유한 요소만 저장하는 집합을 생성하고 이를 다시 배열로 변환합니다.

const array = [1, 1, 2, 3];
const uniqueElements = [...new Set(array)];

console.log(uniqueElements); // [1, 2, 3]

배열 연결

const array0 = [1, 2];
const array1 = [3, 4];
const concated = [...array0, ...array1];

console.log(concated); // [1, 2, 3, 4]

배열 조각화

const [firstElement, ...newArray] = [1, 2, 3, 4];

console.log(firstElement); // 1
console.log(newArray); // [2, 3, 4]

또한 다음을 제거할 수도 있습니다. n 쉼표가 있는 첫 번째 요소.

const [, , , ...newArray] = [1, 2, 3, 4];

console.log(newArray); // [4]

다른 배열의 시작 부분에 배열 삽입하기

const array0 = [4, 5, 6];
const array1 = [1, 2, 3];
const newArray = [...array1, ...array0];

console.log(newArray); // [ 1, 2, 3, 4, 5, 6 ]입니다.

0에서 다음과 같은 숫자 배열 생성 n

const array = [...Array(10)].map((_, i) => i);

console.log(array); // [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]입니다.

객체 파괴하기

const { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };

console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }

객체의 복사본 만들기

let person = {
  이름: 'John',
  age: 25,
  wallet: {
    sum: 500,
    통화: 'USD'
  }
};
let personCopy = { ...person };

console.log(personCopy);
// {
// name: 'John',
// age: 25,
// wallet: {
// 합계: 500,
// 통화: 'USD'
// }
// }

생성되는 객체의 복사본은 원본 객체의 모든 속성을 포함하지만 프로토타입 정보는 포함하지 않는 새 객체라는 점에 유의하세요.

person.age = 20;

console.log(person.age); // 20
console.log(personCopy.age); // 25

스프레드 구문은 객체의 '얕은' 복사본을 생성하므로 '지갑' 속성은 원본 하위 객체에 대한 참조로만 복사된다는 점에 유의하세요. 딥 복제의 경우 객체의 복잡성에 따라 JSON 문자열화/파싱 접근 방식 또는 Lodash에서 제공하는 'cloneDeep' 메서드를 사용할 수 있습니다. 경우에 따라서는 이 메서드도 유용할 수 있습니다:

let personCopy = { ...person, wallet = {...person.wallet}}; 

개체에 조건부로 속성 추가

단락 평가와 함께 스프레드 연산자를 사용하여 생성하는 새 객체에 조건부로 속성을 추가할 수 있습니다.

const colors = {
  red: '#ff0000',
  녹색: '#00ff00',
  blue: '#0000ff'
};
const black = {
  검정: '#000000'
};

let extraBlack = false;
let conditionalMerge = {
  ...colors,
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge);
// {
// red: '#ff0000',
// 녹색: '#00ff00',
// blue: '#0000ff'
// }

extraBlack = true;
conditionalMerge = {
  ...colors,
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge);
// {
// red: '#ff0000',
// 녹색: '#00ff00',
// blue: '#0000ff'
// 검정: '#000000'
// }

문자열을 문자로 분할하기

이는 빈 문자열을 매개변수로 사용하여 분할 메서드를 호출하는 것과 유사합니다.

const split = [...'쿼티'];
console.log(split); // [ 'q', 'w', 'e', 'r', 't', 'y' ]입니다.

디지털 제품 개발 컨설팅

자세히 읽어보세요:

스타트업을 위한 소프트웨어 제품 개발의 3가지 공통 과제

Java를 위한 최고의 프로젝트 유형

잘못된 코딩 관행으로 프로젝트를 죽이지 않는 방법은 무엇인가요?

관련 문서

소프트웨어 개발

미래 지향적인 웹 앱 구축: The Codest의 전문가 팀이 제공하는 인사이트

The Codest가 최첨단 기술로 확장 가능한 대화형 웹 애플리케이션을 제작하고 모든 플랫폼에서 원활한 사용자 경험을 제공하는 데 탁월한 성능을 발휘하는 방법을 알아보세요. Adobe의 전문성이 어떻게 디지털 혁신과 비즈니스를 촉진하는지 알아보세요...

최신
소프트웨어 개발

라트비아에 본사를 둔 10대 소프트웨어 개발 기업

최신 기사에서 라트비아 최고의 소프트웨어 개발 기업과 그들의 혁신적인 솔루션에 대해 알아보세요. 이러한 기술 리더들이 어떻게 귀사의 비즈니스를 향상시키는 데 도움을 줄 수 있는지 알아보세요.

thecodest
엔터프라이즈 및 스케일업 솔루션

Java 소프트웨어 개발 필수 사항: 성공적인 아웃소싱을 위한 가이드

The Codest로 효율성을 높이고 전문 지식을 활용하며 프로젝트 성공을 이끌 수 있는 성공적인 outsourcing Java 소프트웨어 개발에 대한 이 필수 가이드를 살펴보세요.

thecodest
소프트웨어 개발

폴란드 아웃소싱을 위한 최고의 가이드

폴란드에서 outsourcing가 급증한 것은 경제, 교육, 기술 발전으로 인한 IT 성장과 비즈니스 친화적인 환경이 조성된 덕분입니다.

더코데스트
엔터프라이즈 및 스케일업 솔루션

IT 감사 도구 및 기술에 대한 완벽한 가이드

IT 감사는 안전하고 효율적이며 규정을 준수하는 시스템을 보장합니다. 전체 기사를 읽고 그 중요성에 대해 자세히 알아보세요.

The Codest
야쿱 야쿠보비치 CTO & 공동 설립자

지식창고를 구독하고 IT 분야의 전문 지식을 최신 상태로 유지하세요.

    회사 소개

    The Codest - 폴란드에 기술 허브를 둔 국제 소프트웨어 개발 회사입니다.

    영국 - 본사

    • 사무실 303B, 182-184 하이 스트리트 노스 E6 2JA
      영국 런던

    폴란드 - 현지 기술 허브

    • 파브리츠나 오피스 파크, 알레야
      포코주 18, 31-564 크라쿠프
    • 뇌 대사관, 콘스트럭터스카
      11, 02-673 바르샤바, 폴란드

      The Codest

    • 홈
    • 회사 소개
    • 서비스
    • Case Studies
    • 방법 알아보기
    • 채용 정보
    • 사전

      서비스

    • IT 자문
    • 소프트웨어 개발
    • 백엔드 개발
    • 프론트엔드 개발
    • Staff Augmentation
    • 백엔드 개발자
    • 클라우드 엔지니어
    • 데이터 엔지니어
    • 기타
    • QA 엔지니어

      리소스

    • 외부 소프트웨어 개발 파트너와의 협력에 대한 사실과 오해
    • 미국에서 유럽으로: 미국 스타트업이 유럽으로 이전을 결정하는 이유
    • 테크 오프쇼어 개발 허브 비교: 테크 오프쇼어 유럽(폴란드), 아세안(필리핀), 유라시아(터키)
    • CTO와 CIO의 주요 과제는 무엇인가요?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • 웹사이트 이용 약관

    저작권 © 2025 by The Codest. 모든 권리 보유.

    ko_KRKorean
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek ko_KRKorean