首先先看代碼
let alet = 20;
const aconst = 10;
var avar = 15;
console.log(alet);
console.log(aconst);
console.log(avar);
debugger;
運行截圖如下
image.png
會發(fā)現,let和const 定義的變量都屬于塊級作用域,而var為全局(頂級)作用域乳怎。
因此var 定義的變量是可以通過window訪問的,let和const則不支持前弯。
let alet = 20;
const aconst = 10;
var avar = 15;
{
var ainvar = 10;
const ainconst = 5;
{
const ainconst2 = 11;
}
}
debugger;
console.log(ainvar);
console.log(ainconst);
console.log(ainconst2);
debugger;
把代碼稍微改良一下蚪缀,會發(fā)現,var是可以自動升域的恕出,而const和let是不行的椿胯,如果在塊內用const定義,外層是無法訪問剃根,而var可以哩盲。
image.png