- var是es5定义,var 会进行变量提升;let,const是es6定义,不会进行变量提升
console.log(a) //打印出undefined,执行的相当于
var a = 10;
// 相当于执行
var a;
console.log(a);
a = 10;
console.log(b) // 报错
let b = 10;
- var,let是变量,可修改;const是常量,不可修改,定义必须得赋值
- var没有块级作用域,let,const有块级作用域
for(var i = 0;i < 10;i++) {
}
console.log(i) // 10,没有块级作用域
for (let i = 0;i < 10;i++) {
}
console.log(i) // 报错