2023. 9. 18. 18:34ㆍ자바스크립트
자바스크립트를 공부하다가 등장한 ...
과연 이게 무슨 뜻인지 이해가 되지 않아 찾아보았다.
아래는 전반적인 전개 연산자 설명이고, 지금 당장 나한테 필요한 부분에 대해서 먼저 포스팅하겠다.
결론 : 전개 연사자는 깊은 복사에 가깝다. (가까운 이유는 아래 설명) (별도의 메모리 공간을 가진 배열 생성, 값을 바꿔도 원래 그대로,)
const originalObject = { a: 1, b: { c: 2 } };
const copiedObject = { ...originalObject };
copiedObject.a = 3;
console.log(originalObject); // { a: 1, b: { c: 2 } }
console.log(copiedObject); // { a: 3, b: { c: 2 } }
copiedObject.b.c = 55;
console.log(originalObject); // { a: 1, b: { c: 55 } }
console.log(copiedObject); // { a: 3, b: { c: 55 } }
// 두 단계를 거치면, 깊은 복사가 일어나지 않음
하지만 전개연산자를 활용하여도 두단계 이상의 depth부터는 깊은복사가 이루어지지 않는다..!
두 단계 이상의 깊은 복사하는 법,
자바스크립트에서 깊은 복사를 수행하는 방법 중 하나는 JSON.stringify()와 JSON.parse()를 사용하면 된다.
- 기타 다른 방법들도 있으나 여기서는 JSON.stringfy()와 JSON.parse()만 설명
- 그외 다른 방법
- lodash의 clone deep
- Object.assign() 이용
const originalObject = { a: 1, b: { c: 2 } };
const copiedObject = JSON.parse(JSON.stringify(originalObject));
copiedObject.b.c = 3;
console.log(originalObject); // { a: 1, b: { c: 2 } }
console.log(copiedObject); // { a: 1, b: { c: 3 } }
자바스크립트의 전개 연산자(...)는 배열, 객체, 함수 인자 등 여러 곳에서 사용되는 유용한 기능입니다. 이 연산자를 사용하면 데이터를 확장하거나 분해할 수 있으며, 코드를 간결하게 작성하고 가독성을 높일 수 있습니다. 전개 연산자는 ES6(ECMAScript 2015)에서 도입되었습니다.
1. 배열 확장 (Array Spreading):
배열의 요소를 다른 배열에 포함시키거나 배열을 복제할 때 사용됩니다.
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; // arr1의 요소를 포함한 새로운 배열 생성
console.log(arr2); // [1, 2, 3, 4, 5]
2. 함수 인자 (Function Arguments):
함수 호출 시 전달된 인자를 배열로 다룰 때 사용됩니다. 함수 내에서 arguments 객체 대신 사용할 수 있습니다.
function sum(...numbers) {
return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3, 4, 5)); // 15
3.객체 확장 (Object Spreading):
객체의 속성을 다른 객체에 복사하거나, 새로운 속성을 추가할 때 사용됩니다.
const person = { name: 'Alice', age: 30 };
const extendedPerson = { ...person, city: 'New York' };
console.log(extendedPerson);
// { name: 'Alice', age: 30, city: 'New York' }
4. 배열 분해 (Array Destructuring):
배열을 개별 변수로 분해할 때 사용됩니다.
const numbers = [1, 2, 3];
const [first, second, third] = numbers;
console.log(first, second, third); // 1 2 3
5.함수 인자 분해 (Function Argument Destructuring):
function printPerson({ name, age }) {
console.log(`이름: ${name}, 나이: ${age}`);
}
const person = { name: 'Bob', age: 25 };
printPerson(person); // 이름: Bob, 나이: 25
함수의 인자로 전달된 객체를 분해하여 개별 변수로 사용할 때 사용됩니다.
전개 연산자는 코드를 간결하게 만들고, 데이터 조작을 더 쉽게 하며, 반복적인 코드를 줄이는 데 도움을 줍니다. 이를 잘 활용하면 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.
'자바스크립트' 카테고리의 다른 글
react에서 숫자 변수로 나오게 할때 자리 수 제한 (0) | 2023.11.03 |
---|