라벨이 깊은 복사인 게시물 표시

[JavaScript] 얕은 복사, 깊은 복사

얕은 복사와 깊은 복사를 알기위해서는 기본적으로 원시 데이터 타입과 참조 데이터 타입에 대해서 알아야 한다. 원시 데이터 타입(Primitive type) - String - Number - Boolean - Null - Undefined 참조 데이터 타입(Reference type) - Object - Symbol 원시 데이터 타입의 경우 값을 복사하면 새로운 메모리에 값을 할당하기 때문에 원본과 복사된 값 둘 간의 영향을 미치지않는다. let ex1 = "apple" ; let ex2 = ex1 ; ex1 = "banana" ; console . log ( "ex1 =>" , ex1 ); // ex1 => banana console . log ( "ex2 =>" , ex2 ); // ex2 => apple 반면에 참조 데이터 타입은 해당 객체의 메모리 주소 값을 복사하기 때문에 원본과 복사된 값 둘중 하나라도 값의 변경이 일어나면 원본과 복사본 모두 변경사항이 반영된다. let person1 = { name : "Kim" , age : "11" , }; let person2 = person1 ; person1 [ "name" ] = "Park" ; console . log ( "person1 =>" , person1 ); // person1 => { name: 'Park', age: '11' } console . log ( "person2 =>" , person2 ); // person2 => { name: 'Park', age: '11' } 객체의 경우 이러한 특성 때문에 객체를 복사하는 방법이 크게 두가지로 나뉜다. 얕은 복사 shallow copy 얕