본문 바로가기

Programming/JavaScript

var 키워드로 선언된 변수는 함수 레벨 스코프만 인정한다

반응형

var 키워드로 선언된 변수는 함수 레벨 스코프만 인정한다. 

아래 코드는 var 키워드로 선언된 변수 x 가 함수가 아닌 코드 블록 내부에서 선언된 모습이다. 함수 내부에 선언되지 않았으므로 변수 x는 전역 변수로 인식된다. 따라서 상위에 선언된 변수 x의 값에 또 다른 값이 재할당 되는 상황이 발생한다.

 

var x = '원래 값';

if (true) {
    var x = '의도치 않게 변경될 수 있는 값';
}

console.log(x); // 의도치 않게 변경될 수 있는 값

 

따라서 if, for, while, try/catch와 같은 코드 블록 내부에 선언되는 변수를 선언 시 var 키워드를 사용해야 한다면 주의해야 한다.

 

출처

반응형