가장 짧은 Javascript 프로그램, 창 및 이

가장 짧은 JS 프로그램은 빈 프로그램입니다. 빈 Javascript 코드를 실행하면 전역 실행 컨텍스트가 생성됩니다. JS Engine은 코드가 없어도 전역 실행 컨텍스트와 전역 메모리 공간을 설정합니다. JS 엔진은 흥미로운 작업을 수행하는 것 외에도 창 개체를 생성합니다.


이 창 개체는 어떻게 나옵니까?

이 window 객체는 많은 함수와 변수를 가지고 있는 JS Engine에 의해 생성됩니다. 이들은 전역 메모리 공간에서 생성됩니다. 따라서 Javascript 프로그램 어디에서나 이러한 변수와 함수에 액세스할 수 있습니다.



그 외에도 JS Engine은 이 변수를 생성합니다. 전역 수준에서 this는 window 객체를 가리킵니다.



그렇다면 윈도우란 무엇인가?

Window는 전역 실행 컨텍스트와 함께 생성되는 전역 객체입니다.

JS 프로그램이 실행될 때마다 전역 실행 컨텍스트(window 개체)가 생성되고 전역 실행 컨텍스트와 함께 이 변수가 생성됩니다.

이제 생성된 전역 개체에 대해 자세히 알아보십시오.

그래서 브라우저의 경우 전역 객체를 window라고 합니다. Javascript는 브라우저에서만 실행되는 것이 아닙니다. 그것은 서버와 다른 많은 장치와 장소에서 실행됩니다. 자바스크립트가 실행되는 곳이면 어디든 자바스크립트 엔진이 있어야 합니다. 크롬에서 v8인 것처럼 Mozilla도 자체적으로 가지고 있습니다. 마찬가지로 Safari에는 Edge가 있습니다. 따라서 이러한 모든 JS 엔진은 전역 객체를 생성할 책임이 있습니다. 브라우저의 경우 윈도우라고 합니다. 노드의 경우 다른 것으로 불립니다. Javascript를 실행하는 곳마다 이름은 다르지만 항상 공통된 기능이 있습니다. 즉, 전역 개체가 생성됩니다. 파일이 비어 있어도 JS는 전역 객체를 생성합니다.

전역 수준에서 this===window는 참입니다.



우리 모두 알다시피 전역 실행 컨텍스트가 생성되면 전역 메모리 공간이 함께 생성됩니다. 범위 탭의 개발자 도구를 통해 볼 수 있습니다.

그렇다면 글로벌 메모리 공간이란 무엇입니까?

함수 내부에 있지 않은 모든 코드는 전역 메모리 공간에 있습니다. 간단한 방법으로 우리는 함수 내부에 있지 않은 모든 것이 전역 메모리 공간에 있다고 말할 수 있습니다.

function b()
{
    var c=20; //Not in global memory space
}


위의 코드를 디버깅하면. 전역 메모리 공간에 있는 변수와 함수는 전역 공간에 없는 c=20이 아니라 Windows 개체에 있는 것을 볼 수 있습니다. 따라서 전역 공간에서 변수와 함수를 생성할 때마다 이들은 창 개체에 연결됩니다.



var a=10;
function b()
{
    var x=10;
}
console.log(window.a);
console.log(a);
console.log(x);
console.log(this.a);
/*
Output:
10
10
Not defined error as it is not in global
10
*/



프로그램의 함수와 변수에 액세스하려고 할 때마다 앞에 아무 것도 넣지 않으면 전역 공간에 있다고 가정합니다.

따라서 우리는 window.a,a 및 this.a가 모두 창 객체를 가리킨다는 결론에 도달할 수 있습니다. 즉, 모두 메모리 공간에서 동일한 위치를 참조하고 있습니다.

참조:

좋은 웹페이지 즐겨찾기