一、什么是ES6?
ES全称为ECMAScript,它是由国际标准化组织ECMA(全称:European Computer Manufacturers Association)欧洲计算机制造商协会制定的一项脚本语言的标准化规范。JavaScript就实现了这套标准。ES6中的6代表的是版本,从2015年6月份发布的版本及其后续版本统称为ES6,从2015年开始,每年的6月份都会发布新版本。目前各大浏览器产商也都已经支持ES6。
二、var、let、const各自的特点及其区别
在ES6之前只有全局作用域和局部作用域,ES6新增了块级作用域let和const,下面将简单介绍var、let和const的特点以及区别。
块级作用域:只能在声明的区域(代码块)中使用,不能在声明的区域的外部使用,否则报(xxx is not defined)。
-
var:使用var声明的变量,其作用域为该变量所在的函数内,且存在变量提升现象(变量提升:可以先使用再声明),不会受到块级作用域的影响
-
let:ES6新增的块级作用域
2.1:使用let声明的变量具有块级作用域:,只能在当前声明的代码块中使用,必须要先声明再使用
2.2:具有暂时性死区特性。
3. const:ES6中新增的常量(常量:值(内存地址)不可更改的量)。特点如下:
3.1:具有块级作用域的特点,只能在当前声明的代码块中使用,必须要先声明再使用。
3.2:声明常量时必须赋值,如果不赋值报错:Missing initializer in const declaration(在const声明中未初始化)。
3.3:const声明的常量不可更改。
3.4:使用const声明的常量如果是基本数据类型(比如:数字、字符串),一旦赋值,值不可以更改;如果是引用数据类型(数组,对象),不能重新赋值,但是可以更改数据结构内部的值(比如修改对象中的属性)。
三、解构赋值
- 解构:分解数据结构。
- 赋值:为变量赋值。
- 解构赋值:从数组或者对象中提取值,按照对应的位置,对变量赋值(在数组解构中,只 要解构的目标可以遍历,就可以实现解构赋值)。
3.1:数组解构赋值的特点:
在数组解构中,左边用中括号包裹任意个变量,右边则是一个真实的数组,按照 一 一 对应的关系进行赋值,在赋值过程中有以下几种情况:
3.1.1:声明的变量数量与数组的元素数量一致:
3.1.2:声明的变量的数量大于数组的元素的数量:
3.1.3:声明的变量的数量小于数组的元素的数量:
3.1.4:使用剩余运算符进行解构赋值:
3.1.5:可遍历对象 例如:字符串:
四、箭头函数
4.1:箭头函数:ES6新增的定义函数的方式。
4.2:作用:用来简化函数定义的语法。
4.3:箭头函数的特点:
4.3.1:可以将箭头函数赋值给一个变量,变量名字就是函数的名字,通过变量名字调用函数。
4.3.2:如果函数体中只有一行代码,且代码的执行结果就是返回值,可以省略大括号。
4.3.3:如果形参只有一个,可以省略小括号(如果没有形参,小括号不能省略)。
五、Set数据结构
5.1:Set:类似于数组,但是成员的值是唯一的,不允许重复,允许添加任意类型的值。
5.2:如何创建set数据结构?set本身就是一个构造函数,创建此构造函数的实例对象就是在创建set数据结构。
5.2.1:创建set数据结构。
5.2.2:set数据结构还可以接受一个数组作为参数,用来初始化。
5.3:作用:可利用set的特性(不允许重复)做数组去重 等操作。
5.4:常用属性:
5.4.1:add(value) 添加值。
5.4.2:delete(value) 删除值,返回一个布尔值,true:成功 / false:失败。
5.4.3:has(value) 查找值,返回一个布尔值,表示该值是否为Set的成员。
5.4.4:clear() 清除所有成员,没有返回值。
六、Map数据结构
6.1:Map:类似于对象,是一个存储键值对的集合,但是‘键’’的范围不仅仅是字符串,所有类型的值包括对象都可以当做键。
6.2:创建Map集合:
6.2.1:创建Map集合有两种:1.直接new Map()创建实例对象;2.接收一个数组作为参数来创建实例对象(该数组的成员必须是一个个表示键值对的数组)。
6.3:Map集合常用属性和方法:
6.3.1:.has(key);查找key,返回布尔值。
6.3.2:.get(key) 根据key查找value。
6.3.3:.set(key,value) 添加键值对。
6.3.4:.size获取存储的数量。
七、总结
1:var声明的变量是函数变量(全局变量和局部变量),会有变量提升的风险,可以先使用再声明,尽量少用。
2:let声明的变量具有块级作用域的特性,即只能在声明的代码块中使用,只能先声明之后才能使用。
3:const声明的变量是常量,常量的值不允许更改,如果常量是引用类型(对象或者数组),那么可以更改常量内部属性的值。
4:解构就是分解数据结构,赋值就是为变量赋值;在ES6中允许从对象和数组以及任何可以遍历的数据类型进行解构赋值。
5:箭头函数是将函数简化定义的一种方式,将箭头函数赋值给一个变量,变量名就是函数名称,通过调用变量名来调用函数。
6:Set数据结构的声明方式分为两种:1、直接实例化一个空的Set()构造函数;2、在Set构造函数中传入一个数组。Set构造函数可以用来做数组去重等操作。
7:Map数据结构的声明方式分为两种:1、直接实例化一个空的Map()构造函数;2、在Map构造函数中传入一个带有键值对的数组。