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