AR삽질러

JavaScript - 원시타입과 객체타입(16) 본문

WEB/JavaScript

JavaScript - 원시타입과 객체타입(16)

아랑팡팡 2024. 8. 22. 12:47
728x90

 

JavaScript -  원시타입과 객체타입(16)

 

1. 원시타입(Primitive Type)과 객체타입(Object Type)

자료형

 원시타입 : Number, String, Boolean, Null, Undefind

 객체타입 : Object(Array, Function, RegexExp)

 - JavaScript에서 값은 두가지로 나뉘며 두 타입은 메모리에서 값이 어떻게 저장되고 처리되는지에 차이가 있다.

 

2. 원시타입(Primitive Type)

 - 원시타입은 변경할 수 없는 값을 나타내며, 메모리에 직접 저장되어 값 자체로써 변수에 저장되고 복사된다.

 - 불변값으로 메모리 값 수정이 불가능

let a = 10;
let b = a;
b = 20;
console.log(a);
console.log(b);

 

3. 객체타입(Object Type)

 - 참조 방식으로 저장되어 참조값을 통해서 변수에 저장되고 복사된다.

 - 가변값으로 메모리 값 수정 가능

let obj1 = { name: "AR" };
console.log(obj1.name);
let obj2 = obj1;
obj2.name = "Arang";
console.log(obj1.name);
console.log(obj2.name);

 - obj1과 obj2는 같은 객체를 참조하고 있기 때문에 obj2의 속성을 변경하면 obj1의 속성도 변경된다.

 

얕은 복사

 - 객체의 참조값을 복사한다.

 - 원복 객체가 수정될 수 있어 위험하다.

let o1 = {name: "AR"}
let o2 = 01;

 

깊은 복사

 - 새로운 객체를 생성하면서 프로퍼티만 따로 복사한다.

 - 원본 객체가 수정될 일이 없어 안전하다.

let o1 = {name: "AR"}
let 02 = {...o1};

 

 

 

 

 

 

 

728x90
반응형
LIST