[ES6] const, let을 통한 변수 선언
개인적으로 const , let 을 통한 변수 선언은 ECMAScript2015가 발표되면서 Javascript에 가져온 큰 변화 중 하나라고 생각하다. 기존 Javascript에서는 모든 변수를 var 를 이용해 선언해야 했다. 이들 사이에는 어떤 차이가 있는지 알아보자. 1. 호이스팅(hoisting) const 와 let 은 호이스팅 이 되지 않는다. 이는 변수가 선언되기 전에 해당 변수를 호출할 수 없음을 의미한다. console.log(var1); //undefined var var1 = 'var'; console.log(var2); //Uncaught ReferenceError: var2 is not defined let var2 = 'let'; console.log(var3); //Uncaught ReferenceError: var3 is not defined const var3 = 'const'; var 의 경우 선언하기 전에 호출하면 에러가 발생하지 않는다. 하지만 const 또는 let 으로 선언된 변수는 에러를 출력한다. 2. scope 2.1 var - function scope 기존에 사용되었던 var는 function scope를 가진다. function scope란, 한 번 선언된 변수는 함수 단위 내에서 자유롭게 사용할 수 있음을 의미한다. 다음 코드를 보면 더욱 쉽게 이해 할 수 있다. for(var i = 0; i < 10; i++){ console.log('i is ', i); } console.log('after for i is ', i); //after for i is 10 function func(){ for(var j = 0; j < 10; j++){ console.log('j is ', j); } } func(); console.log('after for ...