Skip to content

let const

let命令

  • 不存在变量提升
  • 不允许重复声明
  • 暂时性死区(在代码块内,不允许提前使用要申明的变量)

const命令

const相较于let

  • 申明就赋值
  • 相当于是let的只读属性不得修改。

本质:const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。

块级作用域

  • 块级作用域是指在一对花括号 { } 内声明的变量只能在这对{ }内访问。
  • 块级作用域是ES6引入的特性,使用 let 和 const 关键字声明的变量具有块级作用域,增强了变量的作用范围控制和代码的可维护性。

ES5 只有全局作用域和函数作用域,没有块级作用域,因此在编码中存在诸多问题。
ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。

ES6明确允许在块级作用域之中声明函数。在块级作用域内函数声明语句的行为类似于let,在块级作用域之外不可引用。

编码风格推荐

  1. 建议主要使用 const
  2. 确定需要修改的变量使用 let
  3. 不使用 var