1,简介
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
2,Es6与JavaScript的关系
ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的。
3,Es6 let命令
1,ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
2,let,声明的变量仅在块级作用域内有效
3,let 声明的变量不存在变量提升
4,暂时性死区 在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。
5,不允许重复声明 let不允许在相同作用域内,重复声明同一个变量。
4,Es6 const 命令
1,const声明一个只读的常量。一旦声明,常量的值就不能改变。
2,const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。 只声明不赋值,就会报错。
3,const的作用域与let命令相同:只在声明所在的块级作用域内有效
4,const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
5,const声明的常量,也与let一样不可重复声明。
5,ES6 声明变量的六种方法
1,ES5 的两种声明变量的方法:var命令和function命令
2,ES6添加l了 let和cons t命令,
3,另外两种声明变量的方法:import命令和class命令
6,ES6 变量的解构赋值
解构赋值 : ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
1,数组中 可以从数组中提取值,按照对应位置,对变量赋值。解构赋值允许指定默认值。
2,对象的解构赋值 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
3,字符串的解构赋值 类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。
4,数值和布尔值的解构赋值 解构赋值时,如果等号右边是数值和布尔值,则会先转为对象
7,Set
1,基本用法 : ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。
2,Set 实例的属性和方法
属性: Set.prototype.constructor:构造函数,默认就是Set函数。 Set.prototype.size:返回Set实例的成员总数。
操作方法 : add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
遍历操作方法: keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
8,Map
1,含义 : 类似于对象 键值对的集合
2,实例的属性与方法
size属性 size属性返回 Map 结构的成员总数
set(key, value) 方法
set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。
get(key) 方法
get方法读取key对应的键值,如果找不到key,返回undefined。
has(key) has(key)
has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。