상세 컨텐츠

본문 제목

코드카데미 Javascript - Scope (블럭스코프, 사용시 장점)

IT/Javascript

by J KIMS 2020. 9. 22. 14:24

본문

반응형

 

Block Scope

 

코드 블록 안에서 선언된 변수는 밖에서 참조하는 것이 불가능하다.

 

function logVisibleLightWaves(){
  const lightWaves = 'Moonlight';
  console.log(lightWaves);
}

logVisibleLightWaves();
console.log(`light waves = ${lightWaves}`);

 

위 경우에 lightWaves라는 변수는 logVisibleLightWaves라는 함수 안에서만 정의되어 있으므로 ReferenceError가 뜬다.

 


Scope Pollution

 

늘 어디서나 접근가능한 전역 변수를 사용하면 좋지 않을까 생각할 수도 있다.

하지만 그렇게 되면 저장공간을 낭비하게 된다.

 

const satellite = 'The Moon';
const galaxy = 'The Milky Way';
let stars = 'North Star';

const callMyNightSky = () => {
  stars = 'Sirius';
	return 'Night Sky: ' + satellite + ', ' + stars + ', ' + galaxy;
};

console.log(callMyNightSky());
console.log(stars); //Sirius

 

이런식으로 코드 블록 안에서 전역 변수를 덮어쓰기 하는 것도 좋지 않음.

언제 값이 바뀌었는지 알아차리기 힘들고 코드 유지보수에도 방해가 됨.

 

💡 코드를 잘 스코핑하는 것의 장점

- 블럭으로 코드를 정리해서 코드가 더 알기 쉬워짐

- 어느 변수가 프로그램의 어떤 부분과 관련 있는지 명확해져서 코드 이해가 쉬움

- 유지보수가 쉬움

- 메모리를 아낄 수 있다 (블럭이 실행된 후에 사라지기 때문)

반응형

관련글 더보기

댓글 영역