let const var的区别
- var
会变量提升全局都可以访问
- let 是更好的var
let声明的变量拥有块级作用域
let声明的全局变量不是全局对象的属性。
形如for (let x…)的循环在每次迭代时都为x创建新的绑定。
let在定义相同的变量的时候会报错
for (var i = 0; i < 3; i++) {
setTimeout(function () {
console.log(i) //打印出三次 3
}, 1000);
}
- const
初始化的时候必须赋值
不能更改const修饰的变量
if(true){
let a = 0;
// const b; // 报错 const在声明时必须赋值
const b = 0;
var c = 0;
// b = 0, //报错 const修饰的值不可以被更改
console.log(b);
for (var i = 0; i < 3; i++) {
setTimeout(function () {
console.log(i) //打印出三次 3
}, 1000);
}
};
// console.log(a); // 报错 let有块级作用域 不能在离他最近的{}外访问
// console.log(b); // 报错 const有块级作用域 不能在离他最近的{}外访问
console.log(c);