스코프란?

·2023년 3월 22일
0
post-thumbnail

스코프

대부분의 프로그래밍 언어에는 스코프가 존재하며, 사용방식이나 의미도 조금씩 다르다. 총괄적으로 변수 접근에 대한 범위를 말한다.

자바스크립트의 Scope 특징

1. 자바스크립트는 기본적으로 함수 스코프를 사용한다.

함수 스코프란 새로운 함수가 생성될 때 마다 새로운 스코프가 발생하는 것을 말한다. 해당 함수 내에서 선언된 변수는 그 안에서만 접근이 가능하다. 어디에서든 접근 가능한 전역변수 역시도 자바스크립트에서는 글로벌 함수 내에서 선언한 변수로 나타낸다.

2. 잘못된 재사용 및 업데이트를 방지하기 위해 블록 스코프를 추가하였다.

함수가 생성될 때 마다 새로운 실행 컨텍스트가 생성된다는 말은 즉, 함수가 생성되지 않은 영역은 모두 동일 실행 컨텍스트라는 말이 된다. 따라서 이러한 문제가 발생할 수 있다.

if(true) {
	var secret = '12345';
}
secret // '12345'

자바스크립트는 변수의 무분별한 재사용과 업데이트를 방지하기 위해 es6 이후 let, const 를 추가하여 외부 블록에서 블록 내부 변수에도 접근하지 못하도록 한다.

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글