brunch

You can make anything
by writing

C.S.Lewis

by 별똥별 shooting star Sep 11. 2023

자바스크립트, 스코프(유효범위)는 처음 듣는데?

출퇴근길에 공부하는 자바스크립트1


스코프는 프로그래밍 언어의 핵심 개념 중 하나로, 변수나 함수의 참조 범위를 의미한다. 간단히 말하면, 어떤 변수가 함수 내에서만 사용될 수 있는지, 아니면 전체 코드에서 사용될 수 있는지를 결정하는 것이다. 이러한 스코프의 개념을 이해하지 못한다면, 변수의 값이 어디에서 어떻게 변경되는지 파악하기 어려워질 수 밖에 없다.



스코프의 중요성

스코프는 코드의 구조와 가독성을 향상시키며, 변수 이름의 충돌을 방지한다. 예를 들어, 전역 스코프와 함수 스코프 내에 동일한 이름의 변수를 선언해도 서로 다른 스코프에 있기 때문에 충돌이 발생하지 않는다.



자바스크립트에서의 스코프

자바스크립트는 기본적으로 함수 레벨 스코프를 지원한다. 즉, 변수는 자신이 선언된 함수 내에서만 접근 가능하며, 그 외부에서는 접근할 수 없다. 하지만 ES6에서 도입된 let과 const는 블록 레벨 스코프를 가지게 되어, if 문이나 for 문 같은 코드 블록 내에서 선언된 변수는 해당 블록 내에서만 접근 가능하게 된다.



var, let, const의 스코프 차이  

var: 함수 레벨 스코프를 가지며, 같은 스코프 내에서 중복 선언이 가능하다.

let: 블록 레벨 스코프를 가지며, 같은 스코프 내에서 중복 선언이 불가능하다.

const: 블록 레벨 스코프를 가지며, 값의 재할당이 불가능하다.



스코프와 식별자

스코프는 식별자(변수 이름, 함수 이름 등)의 유효 범위를 결정합니다. 즉, 어느 부분의 코드에서 특정 식별자에 접근할 수 있는지를 결정하게 된다. 이를 통해 코드의 복잡성을 줄이고, 모듈화 및 재사용성을 향상시킬 수 있다.



스코프는 코드 내에서 변수와 함수의 참조 범위를 결정하는 중요한 개념이다. 자바스크립트에서는 var, let, const를 통해 다양한 스코프의 변수를 선언할 수 있으며, 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있다. 따라서, 스코프를 올바르게 이해하고 활용하는 것은 효율적인 코드 작성의 핵심이다.

매거진의 이전글 자바스크립트의 함수는 어떤 형태들이 있을까?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari