概述
ES6 在2015年6月正式发布。
ES6 既是一个历史名词,也是一个泛指,含义是5.1版本以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017等,而 ES2015 则是正式名称,特指当年发布的正式版本的语言标准。
let
ES6 新增了 let 命令,用于声明变量。
- 用法类似于 var,但是所声明的变量只在 let 命令所在的代码块内有效。
- let 声明的变量一定要在声明后使用,否则会报错。var 变量可以在声明之前使用,值为 undefined。
- “暂时性死区”,只要进入当前作用域,所要使用的变量就已经存在,但是不可获取,只有等到声明变量后才可以使用。
- 不允许重复声明
块级作用域
ES5 只有全局作用域和函数作用域,没有块级作用域,导致很多场景不合理。
- 内层变量可能会覆盖外层变量。
- 用来计数的循环变量泄露为全局变量。
- ES6 允许在块级作用域之中声明函数。
const
const 声明一个只读的常量。
- const 的作用域与 let 相同,只在声明所在的块级作用域内有效。
- 保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
解构
ES6 允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称为解构。