1

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


丹丹赵
298 声望20 粉丝