let 與 var 的區(qū)別
1.var聲明變量的時候 變量聲明會提升且會賦值為undefined,let 不會;即在let聲明變量之前使用該變量會報錯,而var不會;
- var 聲明變量的時候不會受塊級作用域影響,let則只會在當(dāng)前塊級作用域生效 ;
注: if(){ //塊級作用域} for(){// 塊級作用域} , 塊級作用域與 函數(shù)作用域是兩個不同的概念
3.在全局作用域中聲明變量時,var 聲明的變量可以通過window對象來訪問,let不行;
例如:
let a = 1
console.log(window.a) // undefined 無法訪問
var b = 2
console.log(window.b) // 2
4.在同一個作用域中,使用var 對已經(jīng)聲明過的變量名進(jìn)行再次聲明,不會有任何影響(因為變量聲明會提升,當(dāng)有同名函數(shù)時,函數(shù)聲明優(yōu)先提升,var 會跳過此變量的提升和賦值為undefined的過程,避免覆蓋),但是let 進(jìn)行同樣的操作時會報錯,即無法使用let對已經(jīng)存在的變量進(jìn)行聲明操作
暫時只想到這么多了,,,,