>  기사  >  웹 프론트엔드  >  JavaScript의 변수, 범위 및 메모리 문제

JavaScript의 변수, 범위 및 메모리 문제

PHP中文网
PHP中文网원래의
2017-06-22 13:37:311012검색

1. 기본 유형 및 참조 유형

기본 유형: 값은 변수(숫자, 문자열, 부울, 정의되지 않음, Null)에 저장됩니다. 메모리에서 고정된 크기의 공간을 차지하고 스택 메모리에 저장됩니다. 참조 유형: 값은 메모리에 저장된 개체입니다. 작동 개체의 실제 작업은 실제 개체가 아닌 개체의 참조입니다. 힙 메모리에 저장됨

변수 값 복사:

 

           

                                                              .                 . 값 전송은 참조 유형의 변수 복사와 동일합니다

 Instanceof는 객체 유형을 감지합니다

 스코프의 앞부분입니다. chain은 항상 현재 실행되는 코드가 있는 환경의 변수 개체이고, 다음 포함 환경의 범위 체인의 다음 변수 개체이며 전역 실행 환경으로 이어집니다.

 블록 수준 범위 없음(es6에서 사용 가능)

3. 가비지 수집

 Javascript에는 자동 가비지 수집 메커니즘이 있습니다. 원칙은 더 이상 사용되지 않는 변수를 찾은 다음 해당 변수가 차지하는 메모리를 해제하는 것입니다.

 로컬 변수는 함수가 실행되는 동안에만 존재합니다. 이 과정에서 해당 값을 저장하기 위해 스택(또는 힙) 메모리에 로컬 변수에 해당하는 공간이 할당됩니다. 함수 실행이 완료되면 해당 메모리가 해제될 수 있습니다.

 가비지 수집 전략:

 표시 제거: (일반적으로 사용됨) 가비지 수집기는 런타임 시 메모리에 저장된 모든 변수를 표시한 다음 환경의 변수와 환경의 변수가 참조하는 변수를 제거합니다. .마크 및 그 이후에 표시된 변수는 삭제 준비가 된 변수로 간주됩니다

 참조 카운팅: (일반적으로 사용되지 않음) 각 값이 참조되는 횟수를 추적하므로 순환 참조가 발생할 때 문제가 발생할 수 있습니다

위 내용은 JavaScript의 변수, 범위 및 메모리 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:JavaScript 문 구조다음 기사:JavaScript 문 구조