본문 바로가기
frontend (React) 개발

(React) const, var, let

by 꼰대코더 2023. 12. 1.
keyword scope  
const 전체 var 와 같으나 한번 값이 할당되면 바꾸지 못함
var function 내 서브블럭내에서 다시 같은 이름의 변수를 할당하여도 똑같은 변수를 가르킨다. 
let 블럭( {  } ) 내 블럭내에 선언하면 블럭을 빠져나오면 사라짐

 

// case 1
function varScoping() {
  var x = 1;

  if (true) {
    var x = 2;
    console.log(x); // will print 2
  }

  console.log(x); // will print 2
}

// case 2
function letScoping() {
  let x = 1;

  if (true) {
    let x = 2;
    console.log(x); // will print 2
  }

  console.log(x); // will print 1
}

// case 3
function nestedScopeTest() {
  if (true) {
    var x1 = 1;
    let x2 = 2;

    console.log(x1); // will print 1
    console.log(x2); // will print 2

    if (true) {
      console.log(x1); // will print 1
      console.log(x2); // will print 2
    }
  }

  console.log(x1); // will print 1
  console.log(x2); // will throw an error
}