Javascript - Scope

이주명·2021년 12월 26일
0

JavaScript에서 scope이란, '변수가 어디까지 쓰일 수 있는지'의 범위를 의미합니다.

변수의 종류

scope를 이해하기 위해 변수의 종류를 알 필요가 있습니다.

1. 지역변수(local)

지역 변수는

function getResult() {
  let result = 10;
  
  return result;
}

이과 같이 함수 안에 갖혀서 사용되거나 for문 or while 문에서만 사용되는 변수를 이야기합니다.
저 함수가 끝나면 result 라는 변수는 수명을 다하게 됩니다. 또한 result는 getResult()함수 밖에서 단독적으로 사용할 수 없습니다. (하지만 return 으로 값을 받을 수 있음!)
지역 변수는 block 안에 있다고 표현합니다.

2. 전역변수(global)

전역 변수는 지역변수와 달리 block 밖에 있는 변수입니다.
전역으로 사용 가능한 변수입니다. 함수 밖에서 선언되어있기 때문에 단독적으로 함수 안에서도 사용이 가능합니다.

const color = 'red';


function returnColor() {
  return color;
}

color라는 변수는 전역변수로 returnColor라는 함수에서도 사용가능하며 함수가 실행되고 나도 사라지지 않습니다.

위의 두가지 변수들을 기억하며 scope를 이해하고 사용해야합니다.

전역변수의 경우 사용하기 쉽지만 너무 값을 많이 변경하는 곳에 사용하면 어디서 에러가 발생했는지 디버깅하기 힘들어질 수 있습니다.

최대한 전역변수를 사용하는 것 보다 지역변수를 이용하는 것이 깔끔한 코딩에 좋습니다.

과제 : description을 한 마디로 설명하시오

function whatIs(type) {
  let description;
  
  switch (type) {
    case 'scope':
      description = '';
      break;
    case 'block':
      description = '';
      break;
    case 'global scope':
      description = '';
       break;
    case 'global variable':
      description = '';
       break;
    case 'block scope':
      description = '';
       break;
    case 'local variable':
      description = '';
      break;
    case 'global namespace':
      description = '';
      break;
    case 'scope pollution':
      description = '';
      break;
    default :
      description = ''
      break;
  }
  
  return description;
}

whatIs() 함수에 있는 지역변수 description은 선언만 한 상태로 값이 할당 되어있지 않습니다. 하지만 switch 문을 통해 type에 어떤 string이 들어오냐에 따라 나뉘게 됩니다.

profile
oh yeah

0개의 댓글