… 확산 연산자
무언가를 제거하고 싶을 때 사용할 수 있습니다.
1. 배열에 추가하면 대괄호가 제거됩니다.
var arr = ('hello', 'world');
console.log(...arr); // hello world
2. 끈으로 묶으면 늘어납니다.
var str="hello";
console.log(...str); // h e l l o
…spread operator 어디에서 사용해야 합니까?
1. 어레이 병합 / 딥 카피
var a = (1, 2, 3);
var b = (4, 5);
var c = (...a);
console.log(c) // (1, 2, 3)
var d = (...a, ...b);
console.log(d) // (1, 2, 3, 4, 5)
깊은 복사에 유용합니다.
var a = (1, 2, 3);
var b = a; // 그냥 등호로 복사하면 값을 공유함(참조관계)
a(3) = 4;
console.log(a); // (1,2,3,4)
console.log(b); // (1,2,3,4)
a와 b는 참조 관계입니다.
Array 및 Object는 참조 데이터 유형이기 때문에 부주의하게 복사하면 가치 분할이 발생합니다.
각각이 독립적인 값을 갖도록 배열 또는 객체를 복사하는 방법(깊은 복사)?
– 스프레드 연산자를 사용합니다.
var a = (1, 2, 3);
var b = (...a);
a(3) = 4;
console.log(a); // (1,2,3,4)
console.log(b); // (1,2,3)
2. 개체 병합 / 딥 카피
var obj1 = { a: 1, b: 2 };
var obj2 = { ...obj1, c: 3 };
console.log(obj2); // { a: 1, b: 2, c:3 }
확산 연산자
집착 스트립
멜빵을 제거하다
둘 다 가능
obj1을 obj2로 딥 복사하는 방법은 무엇입니까?
var obj1 = { a: 1, b: 2 };
var obj2 = { ...obj1 };
하지만 복사 중 중복 값이 발생한다면?
– 마지막 것을 적용하십시오.
var obj1 = { a: 1, b: 2 };
var obj2 = { ...obj1, a: 2 };
console.log(obj2) // { a: 2, b: 2 }
확산 연산자
– 클램프를 제거하십시오.
– 곱슬, 사각형 및 괄호 안에만 사용할 수 있습니다.