// number, string, boolean, null, undefined
let number = 2;
let number2 = number;
console.log(number);
console.log(number2);//call by value(메모리에 값 자체 복사)
number2 = 3;
console.log(number);
console.log(number2);
// object : primitive type 아니면 다 object
// object가 담긴 메모리는 따로 있고(변수 메모리 공간에 저장되긴 너무 큰 데이터라),
// obj 변수의 메모리에는 주소값이 저장된다.
const obj = {
name:'ellie',
age: 5
}
console.log(obj.name);
let obj2 = obj;
obj2.name = 'park'; //call by reference: 주솟값이 복사되며, 복사본 바꾸면 원본도 바뀜.
console.log(obj.name);
// const로 선언한 객체는 변경이 어떤 때 가능? 어떤때 불가?
// const로 선언한 변수 내에는 객체의 reference(주소값)이 담겨있다.
const obj = {
name: 'dave',
age: 6
} // 이렇게 아예 다른 객체의 reference를 넣는 건 불가(컴파일 과정에서 SyntaxError 남)
// 하지만 잠긴건 이 ref에 대해서만이고, 원래 메모리의 위치는 잠겨있지 않으므로
// 이렇게 원래 메모리 상의 key에 대한 value 바꿀 수 있다.
obj.name = '명성';
'개발 공부 > 자바스크립트' 카테고리의 다른 글
[엘리의 드림코딩 JS 보충] 17. Boolean의 모든 것, &&연산자 (0) | 2022.12.06 |
---|---|
[엘리의 드림코딩 JS 보충] 16. 함수 정의, 호출, 그리고 콜백 함수 (0) | 2022.12.06 |
[엘리의 드림코딩 JS] 14. 자바스크립트 함수 기본편 (0) | 2022.12.06 |
video scroll animation에 대해 (0) | 2022.12.06 |
[엘리의 드림코딩 JS] 13. async, await (0) | 2022.12.06 |