var声明变量
- 有变量提升
- 没有块级作用域,是函数作用域
- 可以重复声明
- 可以重新赋值
let声明变量
- 没有变量提升
- 有块级作用域
- 不能重复声明
- 可以重新赋值
/**
*
*/
//1. 没有变量提升
console.log(age); //报错
let age = 33;
console.log(age); //undefined
var age = 33;
//2. 有块级作用域
for(var i = 0;i < 10; i++){
}
console.log(i); //-> 10
for(let i = 0;i < 10; i++){
}
console.log(i); // -> 报错
//3. 不能重复声明
var num = 10;
var num = 20;
console.log(num); // -> 20
let num = 10;
let num = 20;
console.log(num); // -> 报错 已经声明了标识符
//4. 可以重新赋值
var num = 10;
num = 20;
console.log(num); // -> 20
let num = 10;
num = 20;
console.log(num); // -> 20