1.var缺點:
1.可重復聲明
2.不限制修改
3.無塊級作用域
2.let 不能重復聲明,可以修改(變量),塊級作用域
const 不能重復聲明,不能修改(常量),塊級作用域
(const實際上保證的,并不是變量的值不得改動,而是變量指向的那個內存地址所保存的數據不得改動。)
為什么需要塊級作用域?
ES5 只有全局作用域和函數作用域,沒有塊級作用域
1.內層變量可能會覆蓋外層變量;2.用來計數的循環變量泄露為全局變量;
let:使用let命令聲明變量之前,該變量都是不可用的。這在語法上,稱為“暫時性死區”