var和let的区别
生活随笔
收集整理的這篇文章主要介紹了
var和let的区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
var和let都用于聲明變量,不同的是:
1.let聲明的變量不能重復(fù)聲明
2.let聲明的變量不能變量提升:
當(dāng)使用var聲明一個(gè)var變量時(shí),該變量會(huì)被提升到作用域的頂端,但是賦值的部分不會(huì)提升。
console.log(a); var a = 'boo'在聲明a的語(yǔ)句之前就可以輸出a,值為undefined,這就是變量提升。
使用let聲明變量時(shí)不能變量提升。
3.var是函數(shù)作用域,let是塊狀作用域:
在函數(shù)里使用var聲明了一個(gè)變量,那么這個(gè)變量在整個(gè)函數(shù)內(nèi)都是有效的,例如在for循環(huán)里用var聲明一個(gè)變量,在for循環(huán)外也是可以使用的。但是let作用域是塊狀作用域,只在作用域里有效,例如在for循環(huán)里用let聲明一個(gè)變量,在for循環(huán)外面是不能被訪問的。
4.使用let聲明的變量不屬于頂層對(duì)象
頂層對(duì)象,在瀏覽器中指的是window,在node環(huán)境中指的是global對(duì)象。
var聲明的變量屬于頂層對(duì)象window,因此可以通過 window. 變量名 來(lái)訪問這些變量,而let和const聲明的變量不能這樣訪問。
總結(jié)
以上是生活随笔為你收集整理的var和let的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: var 、let 和 const 的区别
- 下一篇: VaR 与 CVaR