>  기사  >  웹 프론트엔드  >  자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까

자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까

青灯夜游
青灯夜游원래의
2022-02-08 14:54:592472검색

JavaScript에서 상수 풀과 힙의 차이점: 1. 상수 풀은 상수와 기본 데이터 유형을 저장하는 데 사용되는 반면, 힙은 복잡한 데이터 유형을 저장하는 데 사용됩니다. 2. 상수 풀의 시스템 효율성이 더 높습니다. 힙은 공간과 주소를 할당해야 하고 주소는 스택에 저장되어야 하므로 효율성은 스택(상수 풀)보다 낮습니다.

자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

자바스크립트의 메모리는 스택 메모리, 힙 메모리, 상수 풀로 구분됩니다. 상수 풀은 일반적으로 스택으로 요약됩니다

  • 스택 메모리: 기본 데이터 유형을 저장하는 데 사용됩니다.

  • 상수 풀: 사용됩니다. 상수를 저장하기 위한 기본 데이터형 (보통 스택 메모리로 분류됨)

  • 힙 메모리 : 복잡한 데이터형을 저장하는데 사용

변수가 기본 데이터형을 저장할 때 변수의 값이 스택 메모리에 저장됨

변수가 복합 데이터형을 저장할 때, 변수 값은 js에서 할당한 메모리 주소인데, 이는 힙 메모리의 복합 데이터형을 가리킨다.

스택 메모리(상수 풀)의 특성상 시스템 효율성이 떨어진다. 더 높습니다. 힙 메모리는 공간과 주소를 할당하고, 주소를 스택에 저장해야 하므로 스택에 비해 효율성이 떨어집니다.

스택 메모리

기본 숫자형은 차지하는 공간이 적고, 크기가 고정되어 있고, 자주 사용되기 때문에 스택 메모리에 저장됩니다

기본 데이터형 중 하나인 숫자를 예로 들어보겠습니다. :

기본 데이터형 변수를 선언하면 변수명과 특정 값이 스택 메모리에 저장됩니다

자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까

console.log(a)를 사용하면 해당 값이 출력됩니다

힙 메모리

복합 데이터 유형은 공간을 많이 차지하고 크기가 고정되어 있지 않기 때문에 스택에 저장하면 성능에 영향을 미치므로 힙 메모리에 저장됩니다

자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까

복합 데이터 유형을 저장하기 위해 변수를 선언할 때 데이터 유형은 스택 메모리에 저장됩니다. 변수 이름과 특정 값을 생성합니다. 이 특정 값은 JS에서 할당한 메모리 참조 주소입니다. 이 주소는 우리가 생성하여 힙 메모리에 저장된 복잡한 데이터 유형을 가리킵니다. 변수를 호출하면 파서는 변수에 해당하는 참조 주소를 기반으로 해당 개체를 참조합니다.

변수 복사

기본 데이터 유형 복사:

var num1=5;
var num2=num1;

위 코드에서 num1과 num2는 실제로 두 개의 서로 다른 변수이며, 해당 작업은 js에서 서로 관련되지 않습니다. 이러한 유형의 변수 복사는 실제로 변수의 복사본을 생성합니다(예: num2=1)

그림과 같이

자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까

복잡한 데이터 유형 복사:

var person={name:'李华'}; //创建一个对象
var per=person ; //进行对象的复制

기본 데이터 유형 변수 복사와의 차이점은 복잡한 데이터 유형 개체를 복사할 때 본질은 변수의 메모리 참조 주소를 복사하는 것입니다. 따라서 사람과 참조 주소는 둘 다 동일한 개체를 참조합니다. , 그들은 모두 메모리에서 작동하고 있습니다.

는 그림에 표시됩니다:

자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까

함수 매개변수 전달은 실제로 일종의 변수 복사입니다.

var x=1;
function fun (x){
    var y=x+1;
    
}

[관련 권장사항: javascript 학습 튜토리얼]

위 내용은 자바스크립트에서 상수 풀과 힙의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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