코딩
-
[JAVASCRIPT-모던자바스크립트] 가비지 컬랙션2Javascript& React study 2021. 10. 15. 05:00
참조 두 개 참조를 user에서 admin으로 복사했다고 가정해보자. // user엔 객체 참조 값이 저장됩니다. let user = { name : "John" }; let admin = user; 그리고 위에서 한것처럼 user의 값을 다른 값으로 덮어써 봅시다. user = null; 전역 변수 admin을 통하면 여전히 객체 John에 접근할 수 있기 때문에 John은 메모리에서 삭제되지 않습니다. 이 상태에서 admin을 다른 값 (null 등)으로 덮어쓰면 John은 메모리에서 삭제될 수 있습니다. 연결된 객체 function marry (man, woman) { woman.husband = man; man.wife = woman; return { father: man, mother: woma..
-
[JAVASCRIPT-모던자바스크립트] 참조에 의한 객체 복사2 / 가비지 컬랙션Javascript& React study 2021. 10. 14. 05:00
지금까진 user의 모든 프로퍼티가 원시값인 경우만 가정했으나 프로퍼티는 다른 객체에 대한 참조 값일 수도 있다. 이러한 경우에는 아래와 같이 진행될 것이다. let user = { name : "John", sizes: { height: 182, width: 50 } }; alert( user.sizes.height ); // 182 clone.sizes = user.sizes로 프로퍼티를 복사하는 것만으로는 객체를 복제할 수 없다. user.sized는 객체이기 때문에 참조값이 복사되기 때문이다. clone.sizes = user.sizes로 프로퍼티를 복사하면 clone과 user는 같은 sizes를 공유하게 된다. let user = { name : "John", sizes: { height: 1..
-
[JAVASCRIPT-모던자바스크립트] 참조에 의한 객체 복사Javascript& React study 2021. 10. 10. 05:00
객체와 원시 타입의 근본적인 차이 중 하나는 객체는 '참조에 의해(by reference)'저장되고 복사된다는 것이다. 원시값(문자열 숫자,불린값)은 값 그대로 저장 할당되고 복사는 아래와 같이 된다. let message = "Hello"; let phraaw = message; 예시를 실행하면 두 개의 독립된 변수에 각각 문자열 "Hello!"가 저장됩니다. 하지만 객체의 동작방식은 이와 다르다고 할 수 있다. 변수엔 객체가 그대로 저장되는 것이 아니라 객체가 저장되어있는 '메모리 주소'인 객체에 대한 '참조 값'이 저장된다. 그림을 통해 변수 user에 객체를 할당할 떄 무슨 일이 일어나는지 알아보자 let user = { name : "John" } 객체는 메모리 내 어딘가에 저장되며 변수 use..
-
[JAVASCRIPT-모던자바스크립트] 객체 기본에 대해서 알아보자3Javascript& React study 2021. 10. 9. 05:00
undefined와 비교하는 것 이외에도 in을 사용하게 되면 프러퍼티 존재 여부를 확인할 수 있다. "Key" in object let user = { name : "John", age : 30 } alert("age" in user); // user.age가 존재하므로 true가 출력 alert("blabla" in user); // user.blabla는 존재하지 않기 때문에 false가 출력 in 왼쪽에 반드시 프로퍼티 이름이 와야한다. 프로퍼티 이름은 보통 따옴표로 감싼 문자열이다. 따옴표를 생략하면 엉뚱한 변수가 조사 대상이 된다. let user = { age: 30 }; let key = "age"; alert( key in user ); // true, 변수 key에 저장된 값 ("age..