이 글은 주로 ECMAScript 기본 값과 참조 값에 대한 지식을 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다
ECMAScript에서는 변수가 두 가지로 존재할 수 있습니다. 유형 의 값, 즉 원래 값 및 참조 값입니다.
(1) 원시값은 Number, Stirng, Boolean, Null, Underfined 등 기본 유형이라고도 하는 원래 유형의 값을 의미합니다.
(2) 스택에 저장된 단순 데이터 세그먼트, 즉 해당 값은 변수가 액세스하는 위치에 직접 저장됩니다.
(3) 참고
많은 언어에서 문자열의 길이는 가변적이므로 문자열은 기본 유형이 아닌 참조 유형으로 처리됩니다. ECMAScript는 이러한 전통을 깨뜨립니다.
(1) 참조 값은 Object, Function, Array, Date, RegExp 등 참조 유형의 값을 의미합니다.
(2) 힙에 저장된 개체, 즉 변수에 저장된 값은 객체가 저장된 메모리를 가리키는 포인터(점)입니다.
변수에 값을 할당할 때 ECMAScript 해석기는 해당 값이 기본 유형인지 참조 유형인지 확인해야 합니다. 이를 위해 인터프리터는 값이 ECMAScript의 기본 유형 중 하나, 즉 정의되지 않음, Null, 부울, 숫자 및 문자열인지 확인하려고 합니다. 이러한 기본 유형 은 고정된 공간 을 차지하므로 더 작은 메모리 영역인 스택에 저장할 수 있습니다. 이 저장소를 사용하면 변수 값을 쉽고 빠르게 찾을 수 있습니다.
값이 참조 유형인 경우 해당 저장 공간은 힙에서 할당됩니다. 참조 값의 크기가 변경되므로 스택에 배치할 수 없습니다. 그렇지 않으면 변수 검색 속도가 느려집니다. 대신, 변수의 스택 공간에 있는 값은 객체가 힙에 저장되는 주소입니다. 주소의 크기는 고정되어 있으므로 스택에 저장해도 가변 성능에 부정적인 영향을 미치지 않습니다.
(1) 원래 값 할당 → 실제로는 값을 복사해서 새로운 변수에 할당하는 것이 copy 이며, 같습니다. 서로 독립적인 원래 값이므로 한 값을 변경해도 다른 값에는 영향을 미치지 않습니다.
(2) 참조 값 할당 → 객체와 같은 참조 유형이 =를 사용하여 다른 변수에 할당되면 실제로는 두 변수 모두 해당 객체의주소 참조를 가리킵니다. 같은 주소 참조로, 그들은 같은 주소를 가지고 있습니다. 따라서 변수 중 하나(주소 참조가 가리키는 개체)가 변경되면 다른 변수(동일한 개체를 가리키는 주소 참조)도 변경됩니다.
4.5 확장 ext5. 다른 비교 방법 5.1 원래 값의 비교는 참조 값의 비교입니다.
5.3 비교예
=== → 값 비교뿐만 아니라 데이터 유형도 비교
(2 ) 참조 값 obj1과 obj2는 각각 힙 메모리에 저장된 두 개의 다른 개체를 참조하므로 obj1과 obj2의 값(주소 참조)이 다릅니다.
ECMAScript에서 변수는 원래 값과 참조 값이라는 두 가지 유형의 값을 가질 수 있습니다.
(1) 원시값은 Number, Stirng, Boolean, Null, Underfined 등 기본 유형이라고도 불리는 원래 유형의 값을 의미합니다.
(2) 스택에 저장된 단순 데이터 세그먼트, 즉 해당 값은 변수가 액세스하는 위치에 직접 저장됩니다.
(3) 참고
많은 언어에서 문자열의 길이는 가변적이므로 문자열은 기본 유형이 아닌 참조 유형으로 처리됩니다. ECMAScript는 이러한 전통을 깨뜨립니다.
(1) 참조 값은 Object, Function, Array, Date, RegExp 등 참조 유형의 값을 의미합니다.
(2) 힙에 저장된 개체, 즉 변수에 저장된 값은 객체가 저장된 메모리를 가리키는 포인터(점)입니다.
변수에 값을 할당할 때 ECMAScript 해석기는 해당 값이 기본 유형인지 참조 유형인지 확인해야 합니다. 이를 위해 인터프리터는 값이 ECMAScript의 기본 유형 중 하나, 즉 정의되지 않음, Null, 부울, 숫자 및 문자열인지 확인하려고 합니다. 이러한 기본 유형 은 고정된 공간 을 차지하므로 더 작은 메모리 영역인 스택에 저장할 수 있습니다. 이 저장소를 사용하면 변수 값을 쉽고 빠르게 찾을 수 있습니다.
값이 참조 유형인 경우 해당 저장 공간은 힙에서 할당됩니다. 참조 값의 크기가 변경되므로 스택에 배치할 수 없습니다. 그렇지 않으면 변수 검색 속도가 느려집니다. 대신, 변수의 스택 공간에 있는 값은 객체가 힙에 저장되는 주소입니다. 주소의 크기는 고정되어 있으므로 스택에 저장해도 가변 성능에 부정적인 영향을 미치지 않습니다.
(1) 원래 값 할당 → 실제로는 값을 복사해서 새로운 변수에 할당하는 것이 copy 이며, 같습니다. 서로 독립적인 원래 값이므로 한 값을 변경해도 다른 값에는 영향을 미치지 않습니다.
(2) 참조 값 할당 → 객체와 같은 참조 유형이 =를 사용하여 다른 변수에 할당되면 실제로는 두 변수 모두 해당 객체의주소 참조를 가리킵니다. 같은 주소 참조로, 그들은 같은 주소를 가지고 있습니다. 따라서 변수 중 하나(주소 참조가 가리키는 개체)가 변경되면 다른 변수(동일한 개체를 가리키는 주소 참조)도 변경됩니다.
4.5 확장 ext5. 다른 비교 방법 5.1 원래 값의 비교는 참조 값의 비교입니다.
5.3 비교예
=== → 값 비교뿐만 아니라 데이터 유형도 비교
(2 ) 참조 값 obj1과 obj2는 각각 힙 메모리에 저장된 두 개의 다른 개체를 참조하므로 obj1과 obj2의 값(주소 참조)이 다릅니다.
ECMAScript6을 시작하기 위한 클래스 객체 예제에 대한 자세한 설명
위 내용은 ECMAScript 기본 및 인용 값 - JavaScript ING의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!