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、声明的常量是基本的数据类型 值是不可以被改变的 声明的常量是引用类型 只要这个变量的地址不被改变 值是可以改变的