javascript 기초 진급집행 환경 과 역할 영역 체인 을 깊이 분석 하 다.
실행 환경 은 변수 나 함수 가 접근 할 수 있 는 다른 함 수 를 정의 하여 각자 의 행동 을 결정 합 니 다.모든 실행 환경 에는 이와 관련 된 변수 대상 이 있 습 니 다.
변수 개체
환경 에서 정 의 된 모든 변수 와 함 수 는 이 대상 에 저 장 됩 니 다.
전역 실행 환경
전역 실행 환경 은 가장 외곽 의 실행 환경 이다.웹 브 라 우 저 에서 전역 실행 환경 은 Window 대상 으로 여 겨 지기 때문에 모든 전역 변수 와 함 수 는 window 대상 의 속성 과 방법 으로 만 듭 니 다.
모든 함수 에는 자신의 실행 환경 이 있다.
역할 영역 체인
코드 가 한 환경 에서 실 행 될 때 변수 대상 의 역할 도 메 인 체인 을 만 듭 니 다.
용도:실행 환경 에 접근 할 수 있 는 모든 변수 와 함수 에 대한 질서정연 한 접근 을 보장 합 니 다.
특징:역할 도 메 인 체인 의 전단 은 현재 실 행 된 코드 가 있 는 환경의 변수 대상 입 니 다.이 환경 이 함수 라면 활동 대상 을 변수 대상 으로 합 니 다.활동 대상 은 처음에 arguments 대상 만 포함 되 었 습 니 다.역할 필드 의 다음 변 수 는 환경 을 포함 하고 다음 에는 환경 을 포함 합 니 다.
var color ="blue";
function changeColor() {
var anotherColor ="red";
function swapColors() {
var tempColor = anotherColor;
anotherColor = color;
color = tempColor;
}
swapColors();
}
changeColor();
그림 에서 실행 환경 을 나타 내 면 내부 환경 은 역할 도 메 인 체인 을 통 해 외부 환경 을 방문 할 수 있 지만 외부 환경 은 내부 환경 에서 의 변수 와 함 수 를 방문 할 수 없다.모든 환경 에서 역할 도 메 인 체인 을 위로 검색 하여 변수 와 함 수 를 조회 할 수 있 습 니 다.하지만 아래로 검색 할 수 없습니다.블록 급 역할 영역 선언 변수 없 음
var 성명 을 사용 하 는 변 수 는 가장 가 까 운 환경 에 자동 으로 추 가 됩 니 다.var 키 워드 를 생략 하면 전역 환경 에 추 가 됩 니 다.
function add(num1,num2) {
var sum = num1+num2;
return sum;
}
var result= add(10,10)
console.log(sum)
sum is not defined
function add(num1,num2) {
sum = num1+num2;
return sum;
}
var result= add(10,10)
console.log(sum)
검색 식별 자
검색 과정 은 역할 도 메 인 체인 의 전단 에서 시작 하여 주어진 이름과 일치 하 는 식별 자 를 위로 한 단계 씩 조회 하고 검색 을 종료 합 니 다.즉,일부 환경 에 같은 이름 의 식별 자가 존재 한다 면 부모 환경 에 있 는 표지 부 를 사용 하지 않 을 것 이다.
var color ="red";
function getColor() {
return color;
}
console.log(getColor())
var color ="red";
function getColor() {
var color="green";
return color;
}
console.log(getColor())
참고:자 바스 크 립 트 고급 프로 그래 밍(제3 판)
이상 이 자 바스 크 립 트 기초 진급집행 환경 과 역할 도 메 인 체인 을 깊이 분석 하 는 것 은 바로 소 편 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.