let const
let命令
- 不存在变量提升
- 不允许重复声明
- 暂时性死区(在代码块内,不允许提前使用要申明的变量)
const命令
const相较于let
- 申明就赋值
- 相当于是let的只读属性不得修改。
本质:const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。
块级作用域
- 块级作用域是指在一对花括号 { } 内声明的变量只能在这对{ }内访问。
- 块级作用域是ES6引入的特性,使用 let 和 const 关键字声明的变量具有块级作用域,增强了变量的作用范围控制和代码的可维护性。
ES5 只有全局作用域和函数作用域,没有块级作用域,因此在编码中存在诸多问题。
ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。
ES6明确允许在块级作用域之中声明函数。在块级作用域内函数声明语句的行为类似于let,在块级作用域之外不可引用。
编码风格推荐
- 建议主要使用 const
- 确定需要修改的变量使用 let
- 不使用 var