let
let用于声明变量。
特点:
1. let不能重复声明变量
2. let声明的变量不会变量提升
3. let声明的变量不属于顶层对象
4. let声明的变量具有块级作用域
//let生成了对应的块状作用域,找到i值
let arr = [];
for (let i = 0; i < 2; i++) {
arr[i] = function () {
console.log(i);
}
}
arr[0](); //0
arr[1](); //1
//for循环 到i=2结束,期间 并没有执行内部函数,在执行函数时,找到的是上层作用域i=2
var arr = [];
for (var i = 0; i < 2; i++) {
arr[i] = function () {
console.log(i);
}
}
arr[0](); //2
arr[1](); //2
const
const用于声明常量。
特点:
1. 声明常量用大写,必须赋初始值
2. 常量不能修改
3. 声明的变量具有块级作用域
4. 使用const声明的变量也不属于顶层对象