<당신이 모르는 자바스크립트 (위) > 작용역과 패키지 닫기 (1)
첫 번째 부분에서 6장으로 나뉘어 서술했지만 주로 세 가지 큰 지식으로 나뉜다. 그것이 바로 컴파일 원리, 작용역과 폐쇄 메커니즘이다. 자바스크립트 엔진의 컴파일 원리 규칙에 의존해야 작용역의 이념을 형성할 수 있고 작용역의 이념에 의존해야 폐쇄 메커니즘의 역할을 나타낼 수 있다고 생각한다.
컴파일링 원리에 대한 파악은 자바스크립트 컴파일링의 절차, 엔진, 컴파일러, 작용역 간의 상호 관계, 그리고 조회 메커니즘을 알아야 한다.
1.javascript를 컴파일하는 절차는 일반적으로 프로그래밍 언어를 컴파일하는 절차는 단어/문법 분석, 해석/문법 분석, 코드 생성 등 세 단계이다.
그러나 js 엔진에 대해 말하자면 컴파일 과정은 좀 복잡하다. js 엔진의 대부분 컴파일 작업은 코드가 실행되기 전의 짧은 시간(매우 매우 짧음)에서 발생하기 때문에 컴파일할 때js 엔진은 코드의 운행 성능 최적화를 해야 한다(이곳은 중점이다. 성능 최적화는 이 단계에서 발생하기 때문에 코드를 작성할 때 코드가 이 단계의 작업에 관여하지 않도록 주의해야 한다. 이 부분의 뒷부분에서 언급될 것이다).
2. 엔진, 컴파일러, 역할 영역 간의 관계는 먼저 명확한 점을 필요로 한다. 컴파일러도 엔진의 일부이기 때문에 이를 분리하여 단독으로 주체로 하는 것은 이 세 가지 측면의 관계를 더욱 잘 논술하기 위해서이다.간단하게 말하면 컴파일러가 어법을 분석함으로써 작용역의 변수, 표지부 등 이런 것들을 생성한다.엔진은 코드를 실행하는 과정에서 역할 영역에서 필요한 표지부를 찾는다.작용역은 코드 실행 및 표지부 저장 범위로 이해할 수 있다.세 가지 역할을 구체적으로 분석하려면 다음과 같이 간단히 설명합니다.
var a=2;
이 성명을 실행하는 과정에서 컴파일러는 두 가지 역할을 한다. a. 역할 영역에서 a를 조회하고 a가 존재하지 않으면 역할 영역에서 a라는 변수를 성명한다.b. 엔진에 값을 부여하는 동작을 수행하는 코드를 생성합니다.엔진도 두 가지 역할을 한다. a. 역할 영역에서 a를 조회한다.b. a에 값을 부여합니다.
3. 조회 메커니즘은 상기 부분에서 조회를 언급했기 때문에 엔진의 조회 메커니즘을 이해해야 한다.조회 메커니즘은 두 가지로 나뉘는데 그것이 바로 LHS 조회와 RHS 조회이다.책에서 두 가지 조회 메커니즘의 원래 뜻을 비교적 전면적으로 논술한 결과 두 가지 조회 메커니즘의 관건은 다음과 같다.
function foo(a) {
console.log(a);
}
foo(2);
두 질의 모두 예외가 있으며 그 예외도 다릅니다.
이상은 원리 방면의 지식을 번역한 것이다.
Small Star's Blog | 샛별의 블로그
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.