[JavaScript] 스코프 (Scope)

올챙이·2024년 1월 2일

JavaScript 기초

목록 보기
15/19
post-thumbnail

스코프 😊

자바스크립트의 변수와 함수는 생성과 동시에 접근하거나 호출할 때 일정한 제약을 갖는데, 이를 스코프라고 한다.

전역 스코프

변수 a는 조건문이나 반복문 또는 중괄호 내부에서 선언하지 않았기 때문에 전역 스코프를 갖는다.
이처럼 전역 스코프를 갖는 변수를 '전역 변수(Global Variable)'라고 한다.

let a = 1;

function foo(){
	console.log(a);
}

지역 스코프

변수 a는 함수 내부에 선언되었기 때문에 지역 스코프를 갖는다.
이처럼 지역 스코프를 갖는 변수를 '지역 변수(Local Variable)'라고 한다.

function foo(){
	let a =1;
}

함수 스코프

자바스크립트의 지역 스코프는 블록 스코프 외에도 한 가지 더 있다.
함수를 기준으로 지역 스코프를 정하는 '함수 스코프'이다.
함수 스코프란 함수 내부에서 선언한 변수만 지역 스코프를 갖는다는 의미이다.
var 키워드로 선언한 변수는 함수 스코프를 갖는다.

if (true){
	var a =1;
}

console.log(a);

위 코드에서 if문 내부에 변수 a가 선언 되었지만 var 키워드로 선언되었기 때문에 if문 밖에서도 사용 가능하다.

  function foo(){
 	var a =1;
 }
 
 console.log(a);// 에러 발생

위 코드에서는 함수 내부에 var키워드로 a 변수를 정의해주었기 때문에 a는 지역 변수로 취급된다. var는 혼란에 빠뜨릴 여지가 많기 떄문에 보편적인 let이나 const 키워드를 이용해 변수를 정의해야 한다.

0개의 댓글