JS에서 number, string, boolean, null, undefined 를 제외한 모든 값은 object임. (원시타입과 객체타입 로 구분해서 칭함.)
원시타입은 값 변경이 불가능하고, 값을 수정하면 항상 새로운 값이 덮어씌워짐.
즉, string을 변경할수는 있지만, string[1]처럼 string의 일부는 불러올수는 있지만 일부만 수정은 불가능하다.
반면 객체타입은 포인터처럼 데이터가 저장된 메모리의 주소값을 가지고 있고,
데이터 일부 변경이 가능하다.
다만, 객체타입을 복사할때 얕은복사, 깊은복사를 주의해서 다루어야 한다.
주소값만 복사할 경우 원본 데이터가 수정되면 복사된 데이터도 수정이 됨.
앝은복사 깊은복사는 아래 링크에 잘 정리되어 있음
https://hanamon.kr/javascript-shallow-copy-deep-copy/
[JavaScript] 얕은 복사(shallow copy) vs 깊은 복사(deep copy) - 하나몬
💡 얕은 복사(shallow copy) vs 깊은 복사(deep copy) ❗️얕은 복사(shallow copy)란? const obj1 = { a: 1, b: 2}; const obj2 = obj1; console.log( obj1 === obj2 ); // true 위의 예시처럼 객체를 직접 대입하는 경우 참조에 의
hanamon.kr
https://bbangson.tistory.com/78
[JavaScript] 깊은 복사, 얕은 복사
깊은 복사, 얕은 복사 결론부터 말하자면 얕은 복사는 객체의 참조값(주소 값)을 복사하고, 깊은 복사는 객체의 실제 값을 복사합니다. 먼저, 자바스크립트에서 값은 원시값과 참조값 두 가지 데
bbangson.tistory.com