개발일지

객체(배열[],딕셔너리{})는 상수 const로 선언되었을때도 할당 되는 이유는?? 본문

JavaScript

객체(배열[],딕셔너리{})는 상수 const로 선언되었을때도 할당 되는 이유는??

MotherCarGasoline 2022. 6. 11. 00:32
const d = [111, "aaaaa", true];
let e = {a: 1, b: "b"};

d[0] = 222;

console.log(d);   = '222'
// my_cat이라는 상수를 만들었어요!
const my_cat = {
	name: "perl",
	status: "좀 언짢음",
}

my_cat.name = "펄이"; 

console.log(my_cat) // = { name: "펄이", status: "좀 언짢음" }

// 여기에선 에러가 날거예요. 프로퍼티는 변경이 되지만, 객체 자체를 제할당할 순 없거든요!
my_cat = {name: "perl2", status: "많이 언짢음"};

 

// my_cat이라는 상수를 만들었어요! const my_cat = { name: "perl", status: "좀 언짢음", }

my_cat.name = "펄이";

console.log(my_cat) // 고양이 이름이 바뀌었죠!

 

// 여기에선 에러가 날거예요. 프로퍼티는 변경이 되지만, 객체 자체를 제할당할 순 없거든요! my_cat = {name: "perl2", status: "많이 언짢음"};

 

배열이나 딕셔너리를 저장할 때는 메모리를 다른곳b에 만들어 놓고

const자리a에는 b메모리 주소를 준다

그래서 할당할 때는 a는 변하지 않겠지만 b에 있는 값이 변해서 출력 된다.

  • const로 선언된 객체는 수정될 수 있어요.
  • const로 선언된 객체는 객체에 대한 참조를 변경하지 못한다는 것을 의미합니다!
  • 즉, 객체의 프로퍼티는 보호되지 않아요!
Comments