var
선언의 중요한 특징JavaScript에서 var
키워드를 사용하여 변수를 선언할 때 고려해야 할 중요한 특징들이 있다. 이러한 특징들은 코드의 동작을 이해하고, 예상치 못한 버그를 방지하는 데 도움이 된다.
var
로 선언된 변수는 해당 변수가 선언된 함수 또는 전역 컨텍스트의 최상단으로 끌어올려진다. 이를 호이스팅
이라고 한다. console.log(myVar); // undefined, 에러가 발생하지 않음
var myVar = 5;
var로 선언된 변수는 가장 가까운 함수 스코프 내에서 유효하다. 이는 블록 스코프(예: if, for 블록 내)를 무시한다는 의미다.
if (true) {
var test = "Hello World!";
}
console.log(test); // "Hello World!" 출력, 블록 스코프를 무시함
var로 선언된 변수는 같은 스코프 내에서 중복 선언이 가능하다. 이는 코드의 가독성과 유지보수성을 저하시킬 수 있다.
var greeting = "Hello";
var greeting = "World!";
console.log(greeting); // "World!" 출력
전역 스코프에서 var로 선언된 변수는 전역 객체의 속성이 된다. 브라우저 환경에서는 window, Node.js 환경에서는 global 객체이다.
var globalVar = "This is global";
console.log(window.globalVar); // 브라우저 환경에서 "This is global" 출력
위와 같은 var의 특징들로 인해, ES6에서는 let과 const가 도입되었다.
let blockScopedVar = "This is block scoped";
const constantValue = "This value cannot be changed";