자바스크립트_스코프

지원·2025년 9월 15일
0

웹프레임워크

목록 보기
3/3
post-thumbnail

스코프(scope)란?

변수(혹은 함수)의 유효 범위

주요 스코프 종류

전역 스코프 (Global Scope)
코드 전체에서 접근 가능
브라우저에선 window 객체가 전역 환경.

함수 스코프 (Function Scope)
함수 내부에서만 접근 가능.

블록 스코프 (Block Scope)
{ }로 감싸진 영역(let, const).
ES6부터 생겼음.

모듈 스코프 (Module Scope)

모듈 파일 내부에서만 유효, 전역과 분리되어 있음.

<script type="module">에서만 적용됨.

this와 스코프의 관계

this는 스코프(렉시컬 환경)와는 별개 개념
화살표 함수는 this를 “자신이 정의된 스코프의 this”에서 상속

실행 환경별 최상위 스코프의 this

(1) type="javascript" (또는 text/javascript)
전통적인 스크립트 실행 방식.
최상위 스코프 = 전역 스코프.
브라우저에서는 this === window.

(2) type="module"
ES 모듈 스펙을 따름.
모듈 파일 내부는 독립된 모듈 스코프.
최상위 스코프의 this = undefined (strict mode 자동 적용).

(3) type="text/babel"
사실 브라우저는 text/babel을 직접 이해하지 못함

Babel(standalone 같은 도구)이 이 코드를 변환해서 실행하는데, 보통은 type="text/javascript"로 트랜스파일된 코드가 실행

그래서 Babel로 돌린 경우,
최상위 스코프의 this는 → window가 되는 게 일반적이다.

0개의 댓글