Skip to content

Files

Latest commit

10d5cd3 · Feb 13, 2025

History

History
49 lines (40 loc) · 1.94 KB

Var.md

File metadata and controls

49 lines (40 loc) · 1.94 KB

var

Summary

var는 자바스크립트에서 가장 오래된 변수 선언 방식이다. 하지만 호이스팅(hoisting) 문제, 함수 스코프(function scope) 등의 이유로 현대적인 코드에서는 사용이 권장되지 않는다.

Details

var의 특징

  • 함수 스코프(function scope): var로 선언된 변수는 블록 스코프를 가지지 않고, 오직 함수 스코프를 따른다.
  • 호이스팅(hoisting): var로 선언된 변수는 선언부가 코드의 최상단으로 끌어올려지는 특성을 가진다.
  • 재선언 가능: 같은 변수명을 여러 번 선언해도 오류가 발생하지 않는다.

예제 코드

console.log(name); // undefined (변수가 선언되었지만, 초기화되지 않음)
var name = "John";
console.log(name); // "John"

위 코드에서 name 변수는 선언부만 호이스팅되었으며, 초기화는 원래 자리에 남아 있다.

var의 문제점

  1. 블록 스코프를 지원하지 않음
    if (true) {
        var test = "hello";
    }
    console.log(test); // "hello" (블록 내부에서 선언했지만 전역에서 접근 가능)
  2. 재선언이 가능하여 의도치 않은 값 변경 발생
    var user = "Alice";
    var user = "Bob";
    console.log(user); // "Bob" (변수가 덮어쓰기 됨)

결론

현재는 var 대신 let 또는 const를 사용하는 것이 권장된다.

Reference

author note: Related note in this repo

link: External reference