ECMAScript를, 상기 변수의 값이 두 가지 유형, 즉, 원래의 값과 상기 기준값에 존재할 수있다.
원래 값 | 참조 값 | |
개념 | 원래의 값을 의미 프리미티브 타입 값이라고도 기본 유형 | 기준값을 의미 하는 기준 입력 값 (클래스) |
데이터 유형 | 번호, Stirng, 부울, 널, Underfined | 객체, 함수, 배열, 날짜, 정규식 |
기억 | 스택 (스택) , 사용 후 파괴, 고정 된 메모리 공간 차지 | 힙 (더미) , 총 메모리 공간은 고정되지 않고, 반드시 파괴되지 사용 후, 시간에 대한 참조없이 하나의 개체 쓰레기 수집 시스템이 파괴 복구되지 않습니다 |
할당 방법 |
1.
복사 값
, 새로운 객체를 생성
2. 값 자체의 복사본을 저장
메모리 3. 중복 데이터는 완전히 독립적이다
|
1.
복사 참조
, 새로운 참조를 만들
2. 저장 복제는 포인터가 가리키는 객체입니다
3. 별도의 스토리지에 저장된 주소의 가변 할당
두 변수의 개체 중 하나를 수정하는 상기 기준 액세스 시간은 또한 수정 된 값에 액세스 할 수있을 것이다.
4. 객체 참조 타입을 구성하는 새로운 () 메소드를 사용한다
|
변수의 값 여부 | 불변의 | 변수 |
범위 | 실패했을 때 함수 영역은 내부 기능 변경을 적용 할 때, 파괴 | 함수가 변형되는 런타임 데이터 영역의 값으로 수정하는 기능이 파괴 된 경우에도, 변수의 값은 여전히 변경 될 수있다. |
방법을 비교 | 비교 값 |
비교 인용 |
만 비교 값 == →
=== → 유일한 값을 비교하고, 상기 비교 데이터 형식
|
||
검출 방식 | typeof 연산자 | instanceof를 연산자 |
상세한 저장된
원래 값 :
VAR의 A = 100 ; VAR의 B는 = a 및 = 200 ; CONSOLE.LOG (b); // (100)
복제하기 전에 변수 객체
복사 한 후 변수 객체
참조 값 :
var에 A = {연령 : 20 }; VAR의 B는 = a 및 b.age = 21 ; CONSOLE.LOG (a.age); // (21)