ecmascript 변수 :
1. 기본 유형 값 (간단한 데이터 세그먼트)
2. 참조 유형 값 (값으로 구성 될 수있는 객체) → 메모리에 저장된 객체
------
동적 속성 : 향후 사용을 위해 참조 된 값에 새로운 속성 만 동적으로 추가 할 수 있습니다.
------
변수 값 복사 :
기본 유형 값 복사 → 변수 객체 → 새 변수로 복사 (상호 영향 없음)에서 새 값을 만듭니다.
참조 유형 값 복사 → 변수 객체에 저장된 값을 새 변수 할당 공간에 복사합니다 (사본은 동일한 객체를 가리키며 서로 영향을 미치는 포인터입니다).
------
전달 매개 변수 :
ECMAScript의 모든 함수는 값으로 전달됩니다.
(함수 외부의 값은 함수 내의 매개 변수로 복사됩니다.
→ ECMA 함수의 매개 변수를 로컬 변수로 상상할 수 있습니다. ))
이유에 대한 설명 :
Statement 1:
함수 매개 변수는 로컬 변수이며 외부 값의 함수 매개 변수로 전달되며 내부 및 외부 값은 서로 영향을 미치지 않습니다. 참조 및 중복 주소가 다루어 지므로 서로에게 영향을 미칩니다.
문 2 : 객체 각도 (매개 변수는 OBJ입니다)
------
객체는 값으로 전달됩니다 → 매개 변수 개체 및 외부 객체는 동일한 객체를 나타냅니다. → 외부 객체가 가리키는 객체는 힙 메모리에 객체가 하나 뿐이며 글로벌 변수입니다.
로컬 객체가 수정 된 객체의 글로벌 범위 (외부)에 반영된 결과로 실수하지 마십시오. → 함수 내부 변수는 함수가 실행 된 직후 파괴됩니다.
------
실행 환경 (때때로 "환경") 및 범위
실행 환경은 다른 데이터에 액세스 할 수있는 흰색 또는 함수를 정의합니다. 각각의 동작을 결정합니다. → 각 실행 환경에는 환경에 정의 된 모든 변수 및 기능 이이 개체에 저장됩니다.
------
각 함수는 자체 실행 환경이 있습니다 → 실행 흐름이 함수로 들어가면 기능 환경이 환경 스택으로 푸시됩니다.
코드가 환경에서 실행되면 가변 객체의 범위 체인이 생성됩니다.
범위 체인 목적 : 실행 환경에서 액세스 할 수있는 권한이있는 모든 변수 및 기능에 순서대로 액세스하십시오.
스코프 체인의 프론트 엔드는 항상 실행 된 코드가 위치한 환경에서 항상 가변 객체입니다.
------
내부 환경은 스코프 체인을 통해 모든 외부 환경을 체인 할 수 있지만 외부 환경은 내부 환경에 액세스 할 수 없습니다 (환경 연결은 선형, 순서대로 → 범위 체인을 쿼리 변수 및 기능 이름으로 위로 검색합니다).
함수 매개 변수도 변수로 취급됩니다
------
스코프 체인 확장 :
일부 명령문은 프론트 엔드 범위 체인에 변수를 일시적으로 추가 할 수 있습니다 (코드 실행 후 변수가 제거됩니다)
1. Try-Catch 문의 캐치 블록
2. 성명서
------
자바에는 블록 레벨 범위가 없습니다
여기서는 단순히 블록 레벨 범위와 기능 범위를 구별 할 수 있습니다.
JS 변수 및 범위에 대한 위의 자세한 설명은 내가 공유 한 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.