#11 - Scope

arthyun·2023년 5월 28일
0

JavaScript의 모든것

목록 보기
11/18
post-thumbnail

스코프(Scope)?

이름이 중복된 2개의 변수 중 어떤 변수를 참조해야 하는가? 자바스크립트는 어떻게 변수를 식별하는 것일까? 스코프는 참조 대상 식별자 (변수, 함수의 이름과 같이 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다.

스코프에는 2가지 개념이 있는데 이를 살펴보자.

  1. 전역 스코프 : 바깥 스코프라고 하며 어디서든 참조할 수있다.
  2. 지역 스코프 : 안쪽 스코프라고 하며 블록 안, 함수 내에서만 참조할 수있다.
let username = 'park';

if(username){
	let message = `Hello, ${username}`;
	console.log(username);
};
  • 블록 밖에서 'username'이라는 변수를 선언했기에 전역변수로서 블록({}) 내에서 참조 가능함은 물론, 다른 스코프에서도 참조 가능하다.
  • 만약 'username'이라는 변수가 블록({})내에서 선언되었다면 블록 내에서만 사용할 수 있는 변수가 되었을 것이다.

Lexical Scope

함수의 상위 스코프를 결정하는 방식으로,
함수를 어디서 선언하였는지에 따라 상위 스코프를 결정하는 것이다.
자바스크립트를 비롯한 대부분의 프로그래밍 언어는 렉시컬 스코프를 따른다.

결론

선언하려는 변수가 어떠한 용도로 사용할 것인지에 따라 전역, 지역 스코프로 선언한 후 참조하여 알맞게 사용할 수 있겠다.

출처 - 스코프를 배워보자

profile
Junior Front-End Developer

0개의 댓글