一、let声明的变量只在命令所在的代码块内有效
二、使用let命令声明的变量在解析的过程当中不会被预解析(也就是不存在变量提高了)
三、使用let命令声明的变量会存在暂时性死区
四、不一样于var全局变量再也不是 window的属性了code
let f=10; function aa() { f=3; //会报错 出现了暂时性死区 let f=12; return f; } console.log(aa())
使用let这个变量不容许再重复声明 (var声明过的变量也不能够再使用let来声明了)
四、let在for循环中的使用 在循环语句以内是一个父做用域 在循环体中是一个子做用域作用域
for(let i=0;i<10;i++){ let i=10; console.log(i) //10个10 } console.log(i) //访问出错 i没有被定义
const 声明的常量有以下的特色
一、所声明的常量只能在命令所在的代码块有效
二、声明的常量不会被提高
三、不能声明已经被声明过的常量 或者var 声明过的变量
使用const声明变量的时候 有以下的规则
一、声明的时候必须赋值
二、声明的常量是基本的数据类型 值是不能够被改变的
声明的常量是引用类型 只要这个变量的地址不被改变 值是能够改变的io