JavaScript 의 가비지 수집 메커니즘을 소개해주세요.
JavaScript 에는 자동 가비지 수집 메커니즘이 있습니다. 가비지 수집기는 일정한 간격으로 주기적으로 실행됩니다.
JavaScript 의 일반적인 가비지 수집 방법 : 표시 지우기 및 참조 계산 .
표시를 지우려면:
- 작동 방식: 변수가 환경에 들어갈 때 이 변수를 "환경에 들어가기"로 표시합니다. 변수가 환경을 떠나면 "환경을 떠나는 것"으로 표시됩니다. "환경 종료"로 표시된 메모리가 회수됩니다.
- 작업 과정:
- 가비지 수집기는 런타임 시 메모리에 저장된 모든 변수를 표시합니다.
- 환경의 변수와 환경의 변수가 참조하는 변수를 제거합니다.
- 표시된 변수는 삭제된 것으로 간주됩니다.
- 가비지 수집기는 메모리 정리 작업을 완료하고 표시된 값을 파괴한 후 해당 값이 차지하는 메모리 공간을 회수합니다.
참조 계산 방법:
- 작동 방식: 각 값이 참조되는 횟수를 추적합니다.
- 작업 과정:
- 변수가 선언되고 참조 유형의 값이 변수에 할당되며 이 참조 유형 값의 참조 카운트는 1 입니다 .
- 동일한 값이 다른 변수에 할당되고 이 참조 유형 값의 참조 카운트는 1 씩 증가합니다 .
- 이 참조 유형 값을 포함하는 변수에 다른 값이 할당되면 이 참조 유형 값의 참조 카운트는 1 만큼 감소합니다 .
- 참조 수가 0 이 되면 이 값에 액세스할 수 있는 방법이 없음을 의미합니다.
- 다음에 가비지 수집기가 실행되면 0 으로 참조된 값이 차지한 메모리가 해제됩니다 .
손떨림 방지, 스로틀링이란?
- 흔들림 방지( 디바운스 ) 기능은 짧은 시간 내에 동일한 이벤트를 여러 번 실행하여 마지막 이벤트만 실행하거나, 첫 번째 이벤트만 실행하고 중간 이벤트는 실행하지 않는 것을 의미합니다.
- 함수 조절( throttle ) - 지속적으로 이벤트를 트리거하지만 n 초 에 한 번만 함수를 실행하는 것을 의미합니다 . 즉, 2n 초에 2 번 실행을 하게 되는데 ...
깊은 복사와 얕은 복사
-
얕은 복사(Shallow copy) : 기본형 데이터만 복사하고, 복사 후에는 참조형 데이터도 참조하게 되는데, 이것을 얕은 복사(shallow copy)라고 부릅니다. 이전 개체와 새 개체는 여전히 동일한 메모리를 공유합니다.
-
딥 카피(Deep Copy) : 힙에 메모리를 재할당하고 원본 개체의 모든 속성에 대한 새 복사본을 만들어 딥 카피 개체의 참조 그래프에 원본 개체나 개체 그래프의 개체가 포함되지 않도록 합니다. , 복사된 객체는 원본과 동일합니다. 객체는 완전히 분리되어 서로 영향을 미치지 않습니다.
HTTP 상태 코드
상태 코드 카테고리:
범주 | 이유 | 설명하다 |
---|---|---|
1xx | 정보(정보 상태 코드) | 수락된 요청을 처리 중입니다. |
2xx | 성공(성공 상태 코드) | 요청이 정상적으로 처리되었습니다. |
3xx | 리디렉션(리디렉션 상태 코드) | 추가 조치 필요 - 요청 완료 |
4xx | 클라이언트 오류(클라이언트 오류 상태 코드) | 서버가 요청을 처리할 수 없습니다. |
5xx | 서버 오류(서버 오류 상태 코드) | 서버에서 요청을 처리하는 동안 오류가 발생했습니다. |
Http와 Https의 차이점
HTTP
URL은 http://로 시작하고 HTTPS의 URL은 https://로 시작합니다.HTTP
안전하지 않은 반면 HTTPS는 안전합니다.HTTP
표준 포트는 80이고 HTTPS의 표준 포트는 443입니다.在OSI
네트워크 모델에서 HTTP는 애플리케이션 계층에서 작동하는 반면 HTTPS의 보안 전송 메커니즘은 전송 계층에서 작동합니다.HTTP
암호화할 수 없습니다. 반면 HTTPS는 전송되는 데이터를 암호화합니다.HTTP
인증서는 필요하지 않지만 HTTPS에는 서명한 CA 기관에서 발급한 SSL 인증서가 필요합니다.