Java Script

var, const, let 차이점 및 사용용도

쩨비 2022. 5. 4. 17:40
728x90

ES6 부터 추가된 자바스크립트의 변수 선언 const, let에 대해 알아 보겠다.

 

var - 자바스크립트의 변수선언

사용예 : 

document.writeln(vTiger); //undefinded

var vTiger = "호랑이";
document.writeln(vTiger); //호랑이

var vTiger = "사자";
document.writeln(vTiger); //사자

vTiger = "원숭이";
document.writeln(vTiger); //원숭이

문제1.  vTiger 변수를 선언하지 않았음에도 에러가 발생하지 않는다. 이것을 호이스팅이라고 하는데 변수가 선언만 된다면 초기화를 했든 안했든 Scope의 맨위에 생성된다. 그래서 초기화(변수의 값을 지정)하지 않아도 에러가 발생하지 않는다.

 

문제2. vTiger 변수를 사자로 다시 선언 할 수 있다.

 

문제3. vTiger의 변수명을 보면 알 수 있다싶이 변수의 값은 호랑이에서 사자나 원숭이로 변할 수 없다. 그래서 변하지 않는 변수로 선언이 필요하다.

 

위의 문제 3개로 인해 ES6부터 추가된게 let이다.

 

document.writeln(lTiger); //error

let lTiger = "호랑이";
document.writeln(lTiger); //호랑이

let lTiger = "사자"; //error

lTiger = "원숭이";
document.writeln(lTiger); //원숭이

let을 사용해 보았다. 변수명이 animal이였다면 문제가 되지 않을 것 이다.

animal은 호랑이가 될 수 있고 원숭이가 될 수 있다.

하지만 tiger는 호랑이 하나 밖에 될 수 없다. 이런 값을 상수(constant) 라고 부른다. 이런 상수 값을 위해 필요한게 변수선언문이 const 다.

 

const cTiger = "호랑이";

cTiger = "원숭이";  //error

 

위 내용을 습득 함으로 써 var만 주구장창 쓰던 옛날 개발자에서 우리는 조금더 발전했다.