# 6 Scope

최정환·2021년 7월 6일
0

📋 Scope

JS의 범위는 access할 수 있는 변수를 정의합니다.
범위에는 전역 범위, 로컬 범위 두 종류가 있습니다.

📋 전역 범위

변수가 모든 함수 또는 중괄호 외부에서 선언되면 전역 범위에서 정의된다고 합니다.


const h = "hello";

function a () {
console.log(h)
}
a()	// hello
console.log(h);	// hello

전역 범위에서 변수를 선언할 수 있지만 그렇게 하지 않는 것이 좋습니다.
충돌이 일어날 가능성이 있는 동일한 이름을 지정할 경우가 존재하기 때문입니다.

const x = "global";
function f() {
    const x = "local";
    console.log(x); // local
}
f();	
console.log(x); // global

📋 지역 범위

코드의 특정 부분에서만 사용할 수 있는 변수는 로컬 범위에 있는 것으로 간주됩니다.
이러한 변수를 지역 변수라고 합니다.

JS에는 함수 범위와 블록 범위 두 종류의 지역 범위가 존재합니다.


📋 함수 범위

함수에서 변수를 선언하면 함수 내에서만이 변수에 액세스할 수 있습니다.
빠져나가면 이 변수를 얻을 수 없습니다.


const h = "hello";

function a () {
console.log(h)
  const b = "b"
}

a()	// hello
console.log(b);	// error

📋 블록 범위

{} () const let 포함하여 변수를 선언하면 해당 중괄호 내에서만이 변수에 액세스할 수 있습니다.


if(true) {
  const hello = "hi";
  console.log(hello)	// hi!
  }

console.log(hello)		// error

0개의 댓글