유연한 변수 선언
간단한 테스트에는 편리함 BUT 코드량이 많아진다면 변수 관리 어려움.
따라서 ES6이후 이를 보완하기 위해 추가 된 변수 선언 방식이 let과 const
변수 선언은 한번만, 값재할당은 가능
constant, 상수(변하지 않는 수)
변수를 선언할 때는 const를 기본으로 사용하자. let은 진짜 필요할 때만 사용!
👻var로 선언한 변수는 선언 전에 사용해도 에러가 나지 않지만,
🐲let, 👾const는 에러가 발생
👻var는 이미 선언되어있는 이름과 같은 이름으로 변수를 또 선언해도 에러가 나지 않지만,
var name = 'hello';
consoleo.log(name) // 'hello'
var name = 'hi'; // 중복선언
console.log(name) // 'hi'
🐲let, 👾const는 이미 존재하는 변수와 같은 이름의 변수를 또 선언하면 에러가 난다.
let name = 'hello';
let name = 'hi'; // 중복선언
console.log(name) // SyntaxError
const name = 'hello';
const name = 'hi'; // 중복선언
console.log(name) // SyntaxError
👻var, 🐲let은 변수 선언시 초기 값을 주지 않아도 되지만,
👾const는 반드시 초기값을 할당해야 한다.
👻var, 🐲let은 값을 다시 할당할 수 있지만,
var name = 'hello';
name = 'hi'; // 값 재할당
console.log(name) // 'hi'
let name = 'hello';
name = 'hi'; // 값 재할당
console.log(name) // 'hi'
👾const는 한번 할당한 값은 변경할 수 없다.(단, 객체 안에 프로퍼티가 변경되는 것까지 막지는 못한다.)
const name = 'hello';
name = 'hi'; // 값 재할당
console.log(name) // SyntaxError