let和const都是用來(lái)申明變量的,關(guān)注點(diǎn)如下:
1.let申明的變量,只在let所在的代碼塊內(nèi)有效
2.var申明變量的時(shí)候會(huì)有變量提升,變量可以在申明之前使用,值為undefined。let和const申明的變量不存在變量提升
3.let不允許在同一個(gè)作用域內(nèi)重復(fù)申明同一個(gè)變量
4.let和const為JS新增了塊級(jí)作用域,塊級(jí)作用域需要用大括號(hào)括起來(lái)
5.const申明的變量為靜態(tài)變量,變量指向的內(nèi)存地址保存的數(shù)據(jù)不允許發(fā)生改變,并且申明變量的時(shí)候就要給變量賦值
6.var命令和function命令聲明的全局變量,依舊是頂層對(duì)象(瀏覽器下是window)的屬性;另一方面,let命令、const命令、class命令聲明的全局變量,不屬于頂層對(duì)象的屬性