let
1使用let关键字声明的变量才具有块级作用域
var关键字是不具备这个特点的
块级作用域的好处 防止外部的变量覆盖内部的变量 防止循环变量变成全局变量
2没有变量提升
3具有暂时性死区
const(使用const关键字声明常量)
1使用const声明的常量有块级作用域
块级作用域的好处 防止外部的变量覆盖内部的变量 防止循环变量变成全局变量
2使用const关键字声明的常量必须赋初始值
3作用 声明常量 常量就是值 (内存地址) 不能变化的量
常量赋值后不可修改(值对应的内存地址) 分两种情况 简单数据类型 报错 复杂数据类型 内部的值可以更改 但是如果直接重新赋值就会报错
代码会报变量没有被声明的错误