Scope?
종류
전역 scope : 전체영역 : 전역 scope 에서 선언된 변수 : 코드 전체에서 유효한 값을 가진다.
//예제1
//어떤 것으로도 둘러싸여 있지 않기 때문에 num은 전역변수이다.
var num = 10;
console.log("전역에서 출력하는 num : " , num);
function numTest(){
console.log("함수 안에서 출력하는 num : " ,num);
}
numTest();
//예제2
//let,const로 선언되지 않았기 때문에 num1또한 전역변수이다.
{
var num=10;
}
console.log("전역에서 출력하는 num1 : " , num1);
function numTest(){
console.log("함수 안에서 출력하는 num1 : " ,num1);
}
numTest();
지역 scope : 일부지역 : 지역 scope 에서 선언된 변수 : 특정 영역에서만 유효한 값을 가진다.
블록 scope : 블록 내에서만 유효한 값을 가진다. (블록? → 중괄호로 표시된 범위)
함수 scope : 함수 내에서만 유효한 값을 가진다. (함수내에서만 유효한 스코프)
블록 scope 예시
var name = "jitae";
console.log(name); // jitae
{
const name = "영수";
console.log(name); //영수 -> 블록 스코프로 지역변수 name이 유효한 범위입니다.
}
console.log(name); //jitae -> 전역 변수로 되어있는 name이 출력된것
함수 scope 예시
function funScope(){
var num = 10;
console.log(num); //함수 내에서 선언된 변수를 사용했기 때문에 오류가 뜨지 않음
}
console.log(num); // 오류 : 함수 내에서 선언된 변수를 사용했기 때문에