更新時(shí)間:2021-10-07 來源:黑馬程序員 瀏覽量:
“var、let、const聲明變量的區(qū)別”是前端開發(fā)工程師面試中經(jīng)常被問到的面試問題,是前端開發(fā)需要重點(diǎn)記住的知識(shí)。下面我們一起來總結(jié)下:
let與const聲明很類似,我么先看var與let的區(qū)別:
1.var聲明變量可以重復(fù)聲明,重復(fù)聲明后之前變量值被覆蓋;而let不可以重復(fù)聲明,重復(fù)聲明會(huì)報(bào)錯(cuò)。
2.var聲明的變量不受限于塊級(jí)作用域,即var聲明的變量是全局變量,不受當(dāng)前(塊級(jí))作用域;let聲明的變量當(dāng)前(塊級(jí))作用域限制,只在作用域內(nèi)有效。
3.let不存在變量提升:var聲明變量的代碼上面可以訪問變量,而let不可以,在let聲明的上面訪問變量會(huì)報(bào)錯(cuò),這就我們說的暫存死區(qū)。
4、var會(huì)與window相映射(會(huì)掛一個(gè)屬性),而let不與window相映射
const聲明變量的特點(diǎn)
·const和let一樣不會(huì)與window相映射、支持塊級(jí)作用域、在聲明的上面訪問變量會(huì)報(bào)錯(cuò)
·const聲明之后必須賦值,否則會(huì)報(bào)錯(cuò)
·const定義不可變的量,改變了就會(huì)報(bào)錯(cuò)