본문 바로가기
FrontEnd

[JS] 변수 및 스코프

by solanarey 2023. 10. 19.

변수 선언 방식

  • var : 중복 선언과 재할당이 가능하다.
    • 소스 코드가 복잡해질 경우 기존 선언해둔 변수를 잊고 다시 선언하거나 재할당을 해서 어떤 부분에서 값이 변경되는지 파악하기 힘들 수 있다.
      • (이로 인해 변수 할당을 할 때는 var를 잘 사용하지 않는다.)
  • let (ES6) : 중복 선언은 불가하며, 재할당은 가능하다.
  • const (ES6) : 중복 선언과 재할당 둘 다 불가능하다.

Scope(유효한 참조 범위)

  • var : function-level scope (함수 레벨 스코프)
function func() {
     if(true) {
         var a = 'a';
         console.log(a);
     }
     console.log(a);
 }

var는 함수 안에서 조건문 블럭에 생성이 되어도 함수 내부라면 조건문 블럭에 상관없이 어디서든 사용할 수 있다.

  • let / const : block-level scope (블록 레벨 스코프)
function func() {
    if(true) {
        let a = 'a';
        console.log(a);
    }
}

let과 const는 조건문 같은 블록 안에서 선언 되었다면 그 블록 안에서만 사용할 수 있다. (자바와 같은듯)

'FrontEnd' 카테고리의 다른 글

[React] React.js 시작하기  (0) 2023.11.02
[JS] Window 객체  (0) 2023.10.19
[JS] 호이스팅 (Hoisting)  (0) 2023.10.19