FrontEnd Typescript – Deep-Copy, Shallow-Copy

Typescript – Deep-Copy, Shallow-Copy

깊은 복사와 얕은 복사

  • 프로그래밍 언어에서 어떤 변숫값을 다른 변숫값으로 설정하는 것을 복사라 표현하며 ‘깊은복사(deep-copy)’와 ‘얕은 복사(shallow-copy)’ 두 종료가 있음.
  • 순수 함수를 구현할 때는 매개변수가 불변성을 유지해야 하므로, 매개변수를 가공하려 할때 깊은 복사를 실행하여 매개변수값이 변경되지 않게함.

Deep-Copy Example

  • 깊은 복사의 코드를 보면 2행의 Copied변수는 01행의 original 변숫값을 복사한되 2를 더한다. 그러나 original 변수값은 변하지 않으며 이러한 복사가 Deep-Copy라고 한다.
  • TypeScript에서 number와 boolean타입은 깊은 복사 형태로 동작
let original = 1
let copied = original
copied += 2
console.log(original, copied) // 1 3

그러나 TypeScript에서는 객체와 배열은 얕은 복사방식으로 동작.

const originalArray = [5,3,9,7]
const shallowCopedArray = originalArray
shallowCopedArray[0] = 0
console.log(originalArray, shallowCopedArray) // [0,3,9,7] [0,3,9,7]

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Related Post

React 프로젝트 구조와 폴더 설명React 프로젝트 구조와 폴더 설명

React는 효율적인 UI 개발을 지원하는 강력한 라이브러리입니다. React 프로젝트를 체계적으로 관리하기 위해 적절한 폴더 구조를 설계하는 것은 매우 중요합니다. 이번 글에서는 React 프로젝트의 기본 구조와 주요 폴더의 역할에 대해 자세히

[React] npx create-react-app 설치오류 “We no longer support global installation of Create React App”[React] npx create-react-app 설치오류 “We no longer support global installation of Create React App”

요새 도커로 개발하고 왠만한 개발환경들인 사전에 설치되어있어서 오랜만에 새프로젝트나 공부하려고 하다보니 설치오류가 종종발생한다 이처럼 버전문제가 항상 발생하는데 이때 발생하는 문제를 가볍게 해결할수 있는 방법을 몇가지 메모하고자한다. 방법 1. 12 npx clear-npx-cache