var와 let의 구체적인 차이점을 확인해 보자


누구나 아는 내용

  1. let, const 는 ES6부터 사용가능
  2. var, let 은 변수 const는 상수


var 는 동일한 변수를 여러번 선언 가능하지만, let, const는 한번만 선언할 수 있다

오류 없음

var name
var name

오류발생 Uncaught SyntaxError: Identifier 'name2' has already been declared

let name2
let name2


var 는 글로벌에 바인됭되지만 let, const는 글로벌객체에 바인딩되지 않는다

여기부터는 잠시 헤깔릴 수 있다. 다음 예제를 보자

var name = 'kkk'
console.log(window.name) // print 'kkk'

let name2 = 'mmm'
console.log(window.name2) // print undefined

const name3 = 'xxx'
console.log(window.name3) // print undefined


var 는 호이스팅 됨

console.log(aa) // not error, but print undefined
var aa = 2
console.log(bb) // ReferenceError: bb is not defined
let bb = 2