>  기사  >  웹 프론트엔드  >  js 기본 데이터 유형 및 참조 유형 소개, 심층 및 얕은 복사 및 메모리 할당 문제

js 기본 데이터 유형 및 참조 유형 소개, 심층 및 얕은 복사 및 메모리 할당 문제

巴扎黑
巴扎黑원래의
2017-09-04 10:24:451282검색

아래 편집기에서는 js 기본 데이터 유형 및 참조 유형, 심층 및 얕은 복사 문제, 메모리 할당 문제에 대해 간략하게 설명합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 에디터를 따라하며 함께 살펴볼까요

js Deep 및 Shallow Copy 문제

Shallow Copy는 일반적으로 기본 유형의 사본을 의미합니다.

Deep Copy는 일반적으로 참조 유형의 사본을 의미하며, 참조 유형의 값도 복사됩니다

예를 들어

h5의 sessionStorage는 문자열만 저장할 수 있으므로 json을 저장하려면 JSON.stringify()를 사용하여 json을 문자열로 변환한 후 JSON을 사용해야 합니다. .parse()를 사용하여 JSON 데이터로 변환

단점: JSON.parse 및 JSON.stringify는 IE9+ 이상만 지원합니다.

이 문제를 해결하려면 깊이 비율 복사 방법을 사용할 수 있습니다.

js의 메모리 할당 문제(힙 및 스택)

js 기본 유형은 일반적으로 스택에 저장됩니다. 이러한 유형은 각각 메모리에서 고정된 크기의 공간을 차지하고 해당 값은 값으로 액세스하는 스택 공간에 저장됩니다.

참조 유형은 가변 크기의 데이터이지만 주소 크기가 고정되어 있으므로 주소는 스택에 저장되고 값은 힙에 저장됩니다.

1 스택 메모리: 기본 유형을 저장합니다. 힙 메모리: 참조 유형 저장(스택 메모리에 기본 유형 값을 저장하여 이 객체를 참조하는 데 사용되는 객체의 주소를 힙 메모리에 저장합니다.)

2. 기본 유형은 현재 실행 환경이 끝나면 소멸됩니다. while 참조 유형은 실행 환경이 종료되면 삭제됩니다. 이 객체는 이를 참조하는 모든 변수가 더 이상 존재하지 않는 경우에만 가비지 수집 메커니즘에 의해 재활용됩니다.

js 기본 데이터 유형 및 참조 유형

기본 데이터 유형에는 숫자 부울 문자열 정의되지 않은 널 기호가 포함됩니다.

참조 데이터 유형: 배열 obj 함수

위 내용은 js 기본 데이터 유형 및 참조 유형 소개, 심층 및 얕은 복사 및 메모리 할당 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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