JS/드림코딩앨리

1. 변수 primitive 타입과 object의 차이점

배워도끝이없네 2021. 4. 22. 18:18
//담을 수 있는 가장 작은단위의 애들을 primitive type data라고 한다 (number,String,boolean, null, undefined)
let number = 2; 
let number2 = number; //number에 있는 data를 number2에 복사해서 가져온다(각각독립됨)

console.clear();
//object
let obj = {
    name:"ellie",
    age:5,
};

console.log(obj.name);

let obj2 = obj; //obj가 가지고있는 주소가 obj2에 복사됨
console.log(obj2.name);

obj.name = 'james';
console.log('--------------')
console.log(obj.name);
console.log(obj2.name); //obj와 obj2가 가르키는 memory가 같으므로 obj를 수정해도 obj2에서 접근하는 값이 바뀜(reference)

let a = 2;
a = 5;

const num = 2;
num = 4;

 

object를 변수에 할당하면 변수는 단지 reference주소만 가지고 있고

value들은 메모리 영역에 따로 저장이 되어있다.

 

하지만 오브젝트가 아닌 primitive type data들을 변수에 담아준다면(ex. const a = 1)

a라는 변수에는 reference가 있는것이 아니라 바로 1이라는것이 담긴다.(참조가아님)