javascript 의 변수,역할 영역,메모리 문제
(1)JavaScript 변 수 는 두 가지 유형의 값 을 저장 할 수 있 습 니 다.기본 형식 값 과 참조 형식 값 입 니 다.기본 형식의 값 은 다음 과 같은 5 가지 기본 데이터 형식 에서 유래 합 니 다.Undefined,Null,Boolean,Number 와 String.기본 유형 값 과 인용 유형 값 은 다음 과 같은 특징 을 가지 고 있 습 니 다.
1.기본 형식 값 은 메모리 에 고정된 크기 의 공간 을 차지 하기 때문에 스 택 메모리 에 저 장 됩 니 다.
2.한 변수 에서 다른 변수 로 기본 형식의 값 을 복사 하면 이 값 의 사본 을 만 듭 니 다.
3.인용 형식의 값 은 대상 이 고 메모리 에 저 장 됩 니 다.
4.인용 형식 값 을 포함 하 는 변 수 는 실제 적 으로 대상 자체 가 아니 라 대상 을 가리 키 는 지침 입 니 다.
5.한 변수 에서 다른 변수 로 인용 형식의 값 을 복사 하고 복사 하 는 것 은 포인터 이기 때문에 두 변 수 는 최종 적 으로 같은 대상 을 가리킨다.
6.하나의 값 이 어떤 기본 형식 인지 type:of 연산 자 를 사용 할 수 있 는 지 확인 하고,하나의 값 이 어떤 인용 형식 인지 인 스 턴 스 of 연산 자 를 사용 할 수 있 는 지 확인 합 니 다.
(2)모든 변수(기본 유형 과 인용 유형 포함)는 하나의 실행 환경(역할 영역 이 라 고도 함)에 존재 합 니 다.이 실행 환경 은 변수의 생명 주기 와 어떤 코드 가 그 중의 변 수 를 방문 할 수 있 는 지 결정 합 니 다.다음은 집행 환경 에 대한 몇 가지 요약 이다.
1.실행 환경 은 전역 실행 환경(전역 환경 이 라 고도 함)과 함수 실행 환경의 구분 이 있다.
2.새로운 실행 환경 에 들 어 갈 때마다 변수 와 함 수 를 검색 하 는 역할 도 메 인 체인 을 만 듭 니 다.
3.함수 의 국부 환경 은 함수 작용 역 의 변 수 를 방문 할 권리 가 있 을 뿐만 아니 라 그 포함(부모)환경,더 나 아가 전역 환경 을 방문 할 권리 가 있다.
4.전역 환경 은 전역 환경 에서 정 의 된 변수 와 함수 에 만 접근 할 수 있 을 뿐 국부 환경 에서 의 그 어떠한 데이터 에 도 직접 접근 할 수 없다.변수의 실행 환경 은 메모 리 를 언제 방출 해 야 하 는 지 확인 하 는 데 도움 이 된다.
(3)자 바스 크 립 트 는 자동 쓰레기 수집 메커니즘 을 가 진 프로 그래 밍 언어 로 개발 자 는 메모리 분배 와 회수 문제 에 관심 을 가 질 필요 가 없다.자 바스 크 립 트 의 쓰레기 수집 루틴 을 다음 과 같이 요약 할 수 있 습 니 다.
1.역할 영역 에서 벗 어 나 는 값 은 자동 으로 회수 가능 한 것 으로 표시 되 므 로 쓰레기 수집 기간 에 삭 제 됩 니 다.
2.'태그 제거'는 현재 주류 의 쓰레기 수집 알고리즘 입 니 다.이런 알고리즘 은 현재 사용 하지 않 는 값 에 표 시 를 한 다음 에 메모 리 를 회수 하 는 것 입 니 다.
3.다른 쓰레기 수집 알고리즘 은'인용 계수'인 데 이런 알고리즘 의 사상 은 모든 값 이 인 용 된 횟수 를 추적 하여 기록 하 는 것 이다.JavaScript 엔진 은 현재 이러한 알고리즘 을 사용 하지 않 습 니 다.
4.그러나 IE 에서 비 원생 자 바스 크 립 트 대상(예 를 들 어 DOM 요소)을 방문 할 때 이 알고리즘 은 여전히 문 제 를 일 으 킬 수 있 습 니 다.코드 에 순환 인용 현상 이 존재 할 때'인용 계수'알고리즘 은 문 제 를 일 으 킬 수 있 습 니 다.
6.메모 리 를 효과적으로 회수 할 수 있 도록 더 이상 사용 하지 않 는 전역 대상,전역 대상 속성 과 순환 인용 변수의 인용 을 제때에 해제 해 야 한다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.