반응형
var 키워드로 선언된 변수는 함수 레벨 스코프만 인정한다.
아래 코드는 var 키워드로 선언된 변수 x 가 함수가 아닌 코드 블록 내부에서 선언된 모습이다. 함수 내부에 선언되지 않았으므로 변수 x는 전역 변수로 인식된다. 따라서 상위에 선언된 변수 x의 값에 또 다른 값이 재할당 되는 상황이 발생한다.
var x = '원래 값';
if (true) {
var x = '의도치 않게 변경될 수 있는 값';
}
console.log(x); // 의도치 않게 변경될 수 있는 값
따라서 if, for, while, try/catch와 같은 코드 블록 내부에 선언되는 변수를 선언 시 var 키워드를 사용해야 한다면 주의해야 한다.
출처
반응형
'Programming > JavaScript' 카테고리의 다른 글
문서 로드 이전, 이후에 따른 함수 정의 - onload, DOMContentLoaded (0) | 2022.09.25 |
---|---|
const 키워드로 변수 선언 (0) | 2022.08.07 |
[JavaScript] JSON 기본 개념 (0) | 2022.02.17 |
[JavaScript] 시:분:초 두 자릿수로 표기하기 (0) | 2021.11.05 |
[JavaScript] 객체(Object)에 대한 정리 (0) | 2021.08.31 |