JS | ES6 문법 - spread operator (전개구문)

2023. 1. 12. 16:02·JavaScript

spread operator (전개구문)

1. 반복 가능한(iterable) 요소에 적용할 수 있는 문법입니다. ex) 배열이나 문자열 등

2. 배열이나 문자열 등을 풀어서 요소 하나하나로 전개시킬 수 있다. 

 

기존에는 index를 사용해서 배열의 값을 뽑아낼 수 있었지만,

배열이름 앞에 ...을 넣어주면 배열의 값을 바로 차례대로 뽑아준다.

 

let arr = [1,2,3];
//전개구문은 반복이 가능한 요소에서만 사용 가능함 (ex.배열, 문자열 / 객체는 안됨))
console.log(...arr); //전개구문 //1 2 3 배열의 요소를 풀어서 나열시킨다.
        
let str = "hello";
console.log(...str);
console.log([...str]); // ['h', 'e', 'l', 'l', 'o'] 

//배열의 추가
let arr2 = [1,2,3,...arr];
// let arr2 = [1,2,3,arr]; -> 배열안에 배열을 집어넣겠다는 뜻
console.log(arr2); //[1, 2, 3, 1, 2, 3]


//배열의 중간에 추가
let arr3 = [1,2,3,...arr,5]; 
console.log(arr3); // [1, 2, 3, 1, 2, 3, 5]

//배열의 복사
let arr4 = [...arr];
console.log(arr4); // [1, 2, 3]

//배열의 연결 
let arr5 = [...arr, ...arr2, ...arr3];
console.log(arr5); //[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 5]

 

함수에서의 spread operator (전개구문)

매개변수 ( ...arr) 의 뜻은

나열된 어떤 요소의 배열을 받아준다.는 뜻이다.

function sum(x,y,z) {
    return x + y + z;
}
let arr = [1,2,3];
//sum(arr[0],arr[1],arr[2]);
        
console.log(sum(...arr)); // 1, 2, 3 //6

console.log(sum(10,...arr)); // 10, 1, 2, 3 //16


//함수를 선언시 - 가변적 매개변수(반드시 맨 마지막에 선언)
function sum2(x, ...y) {
    return [x, ...y];
}

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

//함수의 default매개변수
//값을 전달하지 않으면 = 뒤에 값이 들어간다.
function sum3(x,y=10,z=100) {
    return x + y + z;
}
console.log(sum3(1)); //111
console.log(sum3(1,2)); //103, x=1,y=2
console.log(sum3(1,2,3)); //6
console.log(sum3(...arr)); //6

 

'JavaScript' 카테고리의 다른 글

JS | ES6 문법 - backtick  (0) 2023.01.12
JS | ES6 문법 - Destructuring assignment (구조 분해 할당)  (0) 2023.01.12
JS | ES6 문법 - let 변수, const 변수  (0) 2023.01.12
JS | AJAX (비동기 통신)  (0) 2023.01.06
JS | 세션(session)  (0) 2023.01.05
'JavaScript' 카테고리의 다른 글
  • JS | ES6 문법 - backtick
  • JS | ES6 문법 - Destructuring assignment (구조 분해 할당)
  • JS | ES6 문법 - let 변수, const 변수
  • JS | AJAX (비동기 통신)
개발 공부
개발 공부
  • 개발 공부
    개발 공부
    개발 공부
  • 전체
    오늘
    어제
    • 전체보기 (163)
      • 프로젝트 (1)
      • JavaScript (46)
      • Node.js (3)
      • Next.js (5)
      • React (17)
      • NoSQL (0)
      • HTML,CSS (3)
      • CS (6)
      • Java (35)
      • Spring (6)
        • Spring의 정석 (1)
      • Spring boot (1)
      • MySQL (1)
      • 리눅스 (16)
      • JSP (9)
      • AWS (0)
      • git (2)
      • 알고리즘 (1)
      • ect (7)
      • Project (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    자바
    자바의 정석
    티스토리챌린지
    Java
    Java의 정석
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
개발 공부
JS | ES6 문법 - spread operator (전개구문)
상단으로

티스토리툴바