Javascript의 역할 영역 및 역할 영역 체인

범위는 무엇입니까?


범위는 변수와 문장이 접근할 수 있는 공간으로 정의할 수 있습니다.이것은 변수를 서로 충돌하지 않고 같은 이름을 가지게 할 수 있으며 외부 역할 영역이 내부 역할 영역에 접근하는 것을 방지할 수 있다.
Javascript에는 글로벌 도메인, 함수/로컬 도메인 및 블록 도메인의 세 가지 역할이 있습니다.이러한 내용이 무엇인지 살펴보겠습니다.

전 세계

  • 기본 범위
  • 계획 중 하나의 글로벌 범위
  • 전체 코드
  • 의 최상위 범위입니다.
  • 이 공간의 설명은 코드
  • 의 어느 곳에서나 접근할 수 있습니다
    아래의 예를 보아라.함수 getAge은 함수 외부를 인용할 수 있으나 전역 범위 내에 있는 age이다.

    부분적 또는 기능적 범위


    함수 호출로 생성된
  • 함수의 성명은
  • 에서만 접근할 수 있습니다
    다른 예를 봅시다.다음은 getAge 함수의 결과를 인쇄할 것입니다.age 상수는 함수 역할 영역에 있기 때문에 되돌릴 수 있지만, 전역 역할 영역에서 출력을 시도할 때 인용 오류가 발생합니다.이것은 외부 역할 영역(이 예에서 전역 역할 영역)이 getAge에서 만든 내부 역할 영역(로컬 역할 영역)에 접근할 수 없기 때문이다.

    블록 범위

  • 중괄호 사이의 간격(블록인 경우 등)
  • (letconst용)
  • 선언은 블록 내부에서만 액세스할 수 있음
    아래의 예에서 우리는 변수 msgOne을 인쇄할 수 있지만 상수 msgTwo을 인쇄할 수 없다.앞에서 말한 바와 같이 constlet은 블록 범위이기 때문에 이들은 블록 내부에서만 볼 수 있고 본 예에서 if 문장 내부에서만 볼 수 있다.한편, var은 함수 범위이기 때문에 함수에 접근할 수 있다.

  • 범위 체인


    다음 코드를 보세요.콘솔에 인쇄된 내용은 무엇입니까?정답은 My name is Joana, I'm from Brazil and I speak brazillian portuguese입니다.그러나, displayInfo 함수가 당신의 역할 영역 밖에서 상수에 접근할 수 있도록 하는 것은 무엇입니까?
    const language = 'brazillian portuguese'
    const name = 'Ana'
    
    function displayIntroduction() {
      const name = 'Maria'
      const country = 'Brazil'
    
      function displayInfo() {
        const name = 'Joana'
        console.log(`My name is ${name}, I'm from ${country} and I speak ${language}`)
      }
    
      return displayInfo()
    }
    
    displayIntroduction()
    
    우리가 어떻게 집행하는지를 깊이 연구하기 전에, 나는 집행 상하문에 대해 간단하게 이야기할 것이다.본고는 이 개념을 소개하지 않겠지만 범위 체인을 이해하기 위해 그것이 무엇인지 설명하는 것이 중요하다.따라서 실행 상하문은 자바스크립트 코드를 평가하고 실행하는 환경이다.코드가 처음 실행될 때, 전역 실행 상하문을 만들고, 함수가 호출될 때마다 함수 실행 상하문을 만듭니다.이 코드의 역할 체인은 다음과 같습니다.

    각 실행 컨텍스트에는 범위 체인이 있습니다.이것은 실행 상하문에서 인용할 수 있는 변수와 대상으로 구성되어 있다.변수와 대상을 제외하고는 상위 범위 체인에 대한 인용을 저장하는 outer이라는 속성이 있습니다.displayInfo 함수를 실행하고 name에 도달하면 로컬 역할 체인에서 그것을 검색하여 Joana을 값으로 찾습니다.country도 같은 과정이 발생하지만 현지 범위 내에 있지 않다.
    그럼,javascript는 어떻게 그것을 인용합니까?
    로컬 역할 영역에서 상수를 찾을 수 없을 때javascript는 outer에 저장된 인용 접근 가능한 부모 로컬 메모리에 접근하여 Brazil을 값으로 합니다.
    마지막으로 가장 중요하지 않은 것은 language도 같은 일이 일어났다는 것이다. 이 예에서 자바스크립트 엔진은 작용역 체인을 따라 전역 작용역에 도달하여 상수를 찾고 검색값은 brazillian portuguese이다.중요한 것은 범위 체인이 내부 범위에서 외부 범위까지 한 가지 방식으로만 작동하기 때문에 전역 실행 상하문은 country에 접근할 수 없다는 것을 알아야 한다.
    또한 전역 실행 상하문은 최고급 상하문이고 outernull을 가리키기 때문에 변수가 거기에 없으면 은식 성명(엄격한 모드가 아니라면)이 되고 그렇지 않으면 오류가 되돌아온다는 것을 알아야 한다.

    결론


    작용역과 작용역 체인은 자바스크립트 엔진이 코드를 어떻게 처리하고 집행하는지 이해하는 기본 주제이다.
    요약:
  • 범위는 글로벌 범위, 기능 범위, 블록 범위
  • 세 가지 유형으로 구성됩니다.
  • 작용역은 변수가 서로 충돌하지 않고 같은 명칭을 가지도록 한다
  • 내부 역할 영역의 변수와 대상은 외부 역할 영역
  • 에서 접근할 수 없습니다
  • 범위 체인은 상하문
  • 인용 가능한 변수와 대상으로 구성된다
    감사합니다:)

    좋은 웹페이지 즐겨찾기