자바스크립트 : 스코프

nomore·2022년 9월 25일
0

자바스크립트

목록 보기
11/11

이것만은 알아가자

  • 스코프의 의미와 적용 범위를 이해한다.
  • 스코프의 주요 규칙을 이해한다.
  • 전역 스코프와 지역 스코프의 차이를 이해한다.
  • block scope와 function scope의 차이를 이해한다.
  • 변수 선언 키워드(let, const, var)와 스코프와의 관계를 설명할 수 있다.
  • 전역 객체가 무엇인지 설명할 수 있다.

스코프

컴퓨터 공학, 그리고 자바스크립트에서의 스코프는 "변수의 유효범위"로 사용된다.
변수 접근 규칙에 따른 유효 범위
=> 안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만 반대는 불가능

또한 스코프는 중첩이 가능하다. (중첩된 울타리로 생각하자)
맨 바깥쪽의 스코프는 전역스코프,
바깥쪽이 아닌 다른 스코프는 모두 지역 스코프라 부른다.
지역 변수는 전역 변수보다 더 높은 우선순위를 가진다.

변수는 접근할 수 있는 범위가 존재한다.
중괄호(블록) 안쪽에 변수가 선언되었는가, 바깥쪽에 변수가 선언되었는가가 중요하다. 이 범위를 우리는 스코프라고 부른다.

스코프는 두 가지 종류가 있다. 하나는 블록스코프(block scope)라고 부르며, 중괄호를 기준으로 범위가 구분된다.

if(true){
console.log('i am in the block');
}

또 다른 스코프의 종류로는 함수 스코프(function Scope)가 있다.
fucntion 키워드가 등장하는 함수 선언식 함수 표현식은 함수 스코프를 만든다.
한 가지 유의해야 할 점은
화살표 함수는 블록 스코프로 취급된다. 함수 스코프로 취급되지 않는다.

유의해야 할점

for(var i = 0 ; i < 5; i++){
	console.log(i);	// 5번 반복하며 콘솔화면에 보여줘라.
}
console.log('final i:', i);	//블록 스코프에 있는 i변수를 나타낸다.

var키워드는 for문이 만들어낸 블록 스코프를 무시한다.
var키워드로 정의한 변수는 블록 스코프를 무시하고, 함수 스코프만을 따른다. 그러나 모든 블록 스코프를 무시하는게 아니라 화살표 함수의 블록 스코프는 무시하지 않는다.

0개의 댓글