1)var定義的變量,可以跨塊訪問压储,不能跨函數(shù)訪問
2)let定義的變量鲜漩,只能在塊作用域里面訪問,不能跨塊訪問集惋,也不能跨函數(shù)訪問
3)const用來定義常量孕似,使用時必須初始化,只能在塊作用域訪問刮刑,而且不能修改
3+)const定義的對象屬性是可以改變的(const僅保證指針不發(fā)生改變喉祭,修改對象的屬性不會改變對象的指針养渴,所以是被允許的。也就是說const定義的引用類型只要指針不發(fā)生改變泛烙,其他的不論如何改變都是允許的理卑。)
// 塊作用域
{
var a = 1;
let b = 2;
const c = 3;
// c = 4; // 報錯
var aa;
let bb;
// const cc; // 報錯
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
console.log(aa); // undefined
console.log(bb); // undefined
}
console.log(a); // 1
// console.log(b); // 報錯
// console.log(c); // 報錯
// 函數(shù)作用域
(function A() {
var d = 5;
let e = 6;
const f = 7;
console.log(d); // 5
console.log(e); // 6
console.log(f); // 7
})();
// console.log(d); // 報錯
// console.log(e); // 報錯
// console.log(f); // 報錯