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)聲明過的變量名進行再次聲明隘世,不會有任何影響(因為變量聲明會提升可柿,當(dāng)有同名函數(shù)時,函數(shù)聲明優(yōu)先提升丙者,var 會跳過此變量的提升和賦值為undefined的過程复斥,避免覆蓋),但是let 進行同樣的操作時會報錯械媒,即無法使用let對已經(jīng)存在的變量進行聲明操作
暫時只想到這么多了永票,,滥沫,侣集,