본문 바로가기
반응형

WEB/JavaScript59

[JS] 가비지 컬렉션 & 메모리 누수 메모리 누수란 무엇인가? 메모리 누수는 어떤 이유에서든 지간에, 운영체제 또는 사용가능한 메모리 풀에서 반환되지 않으면서 동시에 애플리케이션에서 더 이상 필요로 하지 않는 메모리로 정의 될 수 있다. 흔한 자바스크립트 메모리 누수 3가지 1. 의도치 않은 전역 변수 2. 잊혀진 타이머 또는 콜백 3. DOM 외부에서의 참조 메모리 관리는 왜 필요한가? 대부분의 언어에서 메모리 라이프 사이클은 메모리 할당 → 메모리 사용 → 메모리 해제의 단계를 거친다. C같은 low-level 언어의 경우 이 라이프 사이클을 개발자가 malloc()이나 free()를 사용하여 직접 관리를 해주어야 하지만 자바스크립트와 같은 high-level 언어는 대부분 Garbage Collection이라는 자동 메모리 관리를 사용.. 2023. 11. 6.
[JS] 깊은 복사 & 얕은 복사 얕은 복사는 객체의 참조값(주소 값)을 복사하고, 깊은 복사는 객체의 실제 값을 복사합니다. 얕은 복사(shllow Copy) 방법 Object.assign(생성할 객체, 복사할 객체) : 메소드의 첫 번째 인자로 빈 객체를 넣어주고 두 번째 인자로 복사할 객체를 넣어주면 됩니다. 깊은 복사(Deep Copy) 방법 JSON.stringify : 객체를 json 문자열로 변환하는데 이 과정에서 원본 객체와의 참조가 모두 끊어집니다. JSON.parse() : 다시 원래 객체(자바스크립트 객체)로 만들어줍니다. => 사용하기 쉽지만 다른 방법들에 비해 매우 느리다고 한다. 2023. 11. 6.
[js] 가변성과 불변성 원시데이터(String, Number, Boolean, undefined, null) - 불변 참조형 데이터(Object, Array, Function) – 가변 값이 바뀌냐 안 바뀌냐가 아니고, 주소가 바뀌냐 안 바뀌냐에 따라 불변/가변을 나눈다. 한번 할당된 메모리 주소는 변하지 않음(데이터 불변성) 선언 할 때 마다 새로운 메모리 주소가 할당(데이터 가변성) 2023. 11. 6.
[js] bigint bigint number 보다도 큰 값까지 저장 가능한 객체이다. let x = 1234567890123456789012345n; // 끝에 n을 붙인다. let y = BigInt(1234567890123456789012345); // BigInt 함수를 이용한다. 2023. 11. 6.
반응형