분홍분홍 코딩 프로젝트
[Javascript] let, const, 데이터 타입에 따른 데이터 변경방법 본문
let 과 const 그리고 데이터 변경
let 과 const를 이용한 원시값 데이터 변경
const a = 1;
a = 2; // x 데이터의 변경이 불가하다.
let a = 1;
a = 2; // o 데이터의 변경이 가능하다.
원시값과 object 데이터를 const를 이용한 변수에 할당 후 변경
const a = 1;
const b = a;
b = 3;
console.log(b); // x 역시나 새로운 변수에 할당 후에도 변경이 안된다.
const obj = {
name : jane,
age : 5
}
const obj2 = obj;
obj2 ={
name : cindy,
age : 5
} // x const니까 역시나 데이터의 변경이 안된다.
하지만
const obj = {
name : jane,
age : 5
}
const obj2 = obj;
obj2.name = cindy;
obj2.age = 11;
obj2 = {
name : cindy,
age : 11
} // o
const 를 이용하여 변수에 할당했음에도 불구하고
데이터의 변경이 가능하다..?!
그 비결은 바로 object형식의 데이터들은 그 데이터를 담은 주소값(reference)을 참조한다.
그 데이터 자체를 복사하는 원시값과의 큰 차이다.
object 형식의 데이터를 메모리칸에 담기에 그 크기가 너무 뚱뚱하다. :(
따라서 바로 위의 경우가 가능한 이유는
const에 의해서 이 데이터가 참조하는 틀인 reference 자체는 변경이 불가능하게 닫혀버리게 되지만(locked)
obj2.name, obj2.age 처럼 그 객체의 프로퍼티를 이용한 데이터 변경은 가능하다.
끝
'Javascript' 카테고리의 다른 글
[React.js] Coin tracker 실습 (0) | 2022.01.03 |
---|---|
[Javascript] Null과 Undefined가 달라? (0) | 2021.07.27 |
[Javascript] DOM? Node? 뭐가 다른건데? (0) | 2021.06.10 |
[Javascript] 객체 생성 (0) | 2021.05.02 |
[Javascript] Class와 Object (0) | 2021.04.30 |