var 允許重複宣告,且並不會跳出任何的錯誤或警告訊息,因此很容易在沒注意的情況下重複宣告,進而造成程式碼閱讀困難且不好維護
var a = 1
var a = 2
console.log(a) // 2
let & const 不允許在同一作用區塊中重複宣告變數
let b = 1
let b = 2 // error, 不能重複宣告
但如果是在不同的作用域中宣告相同的變數是可以的,並不會互相影響
let c = 1 // global scope
function hi(){
let c = 2 // function scope
console.log(c)
}
hi(); // 2
console.log(c); // 1