var 

함수 스코프를 가지고 있다.

var는 함수 내부에서 선언했을때만 지역변수로 사용되고,

함수를 제외한 영역에서 var는 전역변수로 사용된다.

중복 선언도 가능하기때문에 같은 변수명을 사용해도 에러가 나지않는 경우가 발생하여

var는 사용을 하지 않는 것을 권장한다.

function age(){
    var a = 10; //이것만 지역변수
    console.log(a); // 10
}

age(); 

console.log(a); // error
if(true) {
    var a = 10;
    console.log(a); // 10
}

console.log(a); // 10 함수가 아니라서 var는 전역변수로 취급된다. 내부에서 선언된 변수에 외부접근이 가능하다.

 

 

 

 

let, const

블록 스코프를 가지고 있다.

let, const는 함수 내부는 물론, if문 for문 등의 코드블록에서 선언된 변수도 지역변수로 사용된다.

if문의 블록 내부에서 let으로 선언된 변수는 외부에서 참조되지 않는다.

if(true) {
    let a = 10;
    console.log(a); // 10 함수가 아니고 if문이라서 지역변수로 간주
}
console.log(a); // error 외부의 a가 존재 하지않는다. 

당연히 함수 내부에서 선언된 변수도 외부에서 참조할 수 없다.

function hello() {
    let a = 10;
    console.log(a); //10 
}
hello();
console.log(a); //error

지역 변수란 ? 내부에서 선언된 변수로 내부에서만 사용가능한 변수를 말한다.

복사했습니다!