let
1、let声明的变量只在命令所在的代码块内有效
2、使用let命令声明的变量在解析的过程中不会被预解析(也就是不存在变量提升了)
3、使用let命令声明的变量会存在暂时性死区
4、不同于var全局变量不再是 window的属性了
let f=10;
function aa() {
f=3; //会报错 出现了暂时性死区
let f=12;
return f;
}
console.log(aa())
使用let这个变量不允许再重复声明 (var声明过的变量也不可以再使用let来声明了)
4、let在for循环中的使用 在循环语句之内是一个父作用域 在循环体中是一个子作用域
for(let i=0;i<10;i++){
let i=10;
console.log(i) //10个10
}
console.log(i) //访问出错 i没有被定义
const
const 声明的常量有如下的特点
1、所声明的常量只能在命令所在的代码块有效
2、声明的常量不会被提升
3、不能声明已经被声明过的常量 或者var 声明过的变量
使用const声明变量的时候 有如下的规则
1、声明的时候必须赋值
2、声明的常量是基本的数据类型 值是不可以被改变的
声明的常量是引用类型 只要这个变量的地址不被改变 值是可以改变的
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。