teddy8 Full Stack Software Engineer

JavaScript var vs let vs const 특징 및 차이점

2019-07-05
teddy8

var vs let vs const

자바스크립트에서 var만 사용해야 했지만
es6부터 let과 const를 사용할 수 있게 되었습니다
각 특징을 나열하면 다음과 같습니다.

var
  재선언 가능
  재할당 가능

let
  재선언 불가능
  재할당 가능

const
  재선언 불가능
  재할당 불가능

var vs let

example.js

if (true) {
  var str1 = '1';
  let str2 = '2';
}
console.log(str1); 
console.log(str2);

출력

1
error
var은 함수 단위의 유효 범위로 if문 안에서 정의해도 밖에서도 사용 가능합니다.
let은 블록 단위의 유효 범위로 밖에선 사용 불가능합니다.

따라서 1은 출력되지만 2는 오류로 인해 출력할 수 없습니다.

example.js

let str = "1";

if (true) {
  let str = "2";
  console.log(str);
}

console.log(str);

출력

2
1
let은 var와 다르게 전역변수와 지역변수처럼
유효범위를 구분되게 사용할 수 있습니다.

example.js

let str = "1";
  if (true) {
    console.log(value);
    let str = "2";
  }

출력

error
단, let변수를 함수 단위에서 선언해서 전역변수처럼 사용하려는 경우  
블록 단위에서 같은이름으로 재선언하면 호이스팅이 일어나기 때문에
변수선언의 위치에 따라 에러가 발생할 수 있습니다.

let vs const

const도 let처럼 블록단위로 스코프를 정의할 수 있습니다.
let과의 차이점은 선언과 동시에 값을 할당해야합니다. 
그 후, 재할당은 할 수 없습니다.
단, 객체를 할당한 경우 새로운 객체는 할당할 수 없지만 
객체 내부의 상태는 추가 및 변경 가능합니다.

Similar Posts

Comments