目录:

一、什么是ES6?

二、var、let、const各自的特点及其区别

三、解构赋值

四、箭头函数

五、Set数据结构

六、Map数据结构

七、总结

 


 

一、什么是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)。

 

  1. var:使用var声明的变量,其作用域为该变量所在的函数内,且存在变量提升现象(变量提升:可以先使用再声明),不会受到块级作用域的影响

es6规范有哪些 es6类型_赋值

 

  2. let:ES6新增的块级作用域,

    2.1:使用let声明的变量具有块级作用域:,只能在当前声明的代码块中使用,必须要先声明再使用

    2.2:具有暂时性死区特性。

es6规范有哪些 es6类型_数据结构_02

    

    暂时性死区:在if判断这个块级作用域外部用var声明了num变量,而在内部用let声明了同名的变量,在这时console.log()不会向上一级(if判断外面)查找num变量,因为在内部使用了let关键字声明了num变量,那么这个使用let声明的num变量就已经与if判断内部的代码块进行了绑定,所以console.log()输出:“num未初始化”。

 

es6规范有哪些 es6类型_数据结构_03

 

  3. const:ES6中新增的常量(常量:值(内存地址)不可更改的量)。特点如下:

    3.1:具有块级作用域的特点,只能在当前声明的代码块中使用,必须要先声明再使用。

    3.2:声明常量时必须赋值,如果不赋值报错:Missing initializer in const declaration(在const声明中未初始化)。
    3.3:const声明的常量不可更改。

    3.4:使用const声明的常量如果是基本数据类型(比如:数字、字符串),一旦赋值,值不可以更改;如果是引用数据类型(数组,对象),不能重新赋值,但是可以更改数据结构内部的值(比如修改对象中的属性)。

 

    代码示例如下:

      

es6规范有哪些 es6类型_es6规范有哪些_04

 

 

 

三、解构赋值

  1. 解构:分解数据结构。

  2. 赋值:为变量赋值。

  3. 解构赋值:从数组或者对象中提取值,按照对应的位置,对变量赋值(在数组解构中,只要解构的目标可以遍历,就可以实现解构赋值)。

    3.1:数组解构赋值的特点:

      在数组解构中,左边用中括号包裹任意个变量,右边则是一个真实的数组,按照 一 一 对应的关系进行赋值,在赋值过程中有以下几种情况:

      3.1.1:声明的变量数量与数组的元素数量一致:  

        

es6规范有哪些 es6类型_es6规范有哪些_05

 

      3.1.2:声明的变量的数量大于数组的元素的数量:

        

es6规范有哪些 es6类型_数据结构_06

 

      3.1.3:声明的变量的数量小于数组的元素的数量:

        

es6规范有哪些 es6类型_赋值_07

 

      3.1.4:使用剩余运算符进行解构赋值:

        

es6规范有哪些 es6类型_数据结构_08

 

      3.1.5:可遍历对象  例如:字符串:

        

es6规范有哪些 es6类型_赋值_09

 

 

 

 

四、箭头函数

   

  4.1:箭头函数:ES6新增的定义函数的方式。

  4.2:作用:用来简化函数定义的语法。

  4.3:箭头函数的特点:

    4.3.1:可以将箭头函数赋值给一个变量,变量名字就是函数的名字,通过变量名字调用函数。

 

      

es6规范有哪些 es6类型_数据结构_10

 

    4.3.2:如果函数体中只有一行代码,且代码的执行结果就是返回值,可以省略大括号。

      

es6规范有哪些 es6类型_赋值_11

 

 

    4.3.3:如果形参只有一个,可以省略小括号(如果没有形参,小括号不能省略)。

       

es6规范有哪些 es6类型_数组_12

 

 

 

 

五、Set数据结构

  5.1:Set:类似于数组,但是成员的值是唯一的,不允许重复,允许添加任意类型的值。

  5.2:如何创建set数据结构?set本身就是一个构造函数,创建此构造函数的实例对象就是在创建set数据结构。

    5.2.1:创建set数据结构。

      

es6规范有哪些 es6类型_数组_13

 

     

    5.2.2:set数据结构还可以接受一个数组作为参数,用来初始化。

      

es6规范有哪些 es6类型_数组_14

 

 

  
  5.3:作用:可利用set的特性(不允许重复)做数组去重 等操作。

    

es6规范有哪些 es6类型_es6规范有哪些_15

 

 

   5.4:常用属性:

    5.4.1:add(value) 添加值。

      

es6规范有哪些 es6类型_赋值_16

 

    5.4.2:delete(value) 删除值,返回一个布尔值,true:成功 / false:失败。

      

es6规范有哪些 es6类型_数据结构_17

 

 

     5.4.3:has(value) 查找值,返回一个布尔值,表示该值是否为Set的成员。

      

es6规范有哪些 es6类型_赋值_18

 

 

    5.4.4:clear() 清除所有成员,没有返回值。

      

es6规范有哪些 es6类型_es6规范有哪些_19

 

 六、Map数据结构

  6.1:Map:类似于对象,是一个存储键值对的集合,但是‘键’’的范围不仅仅是字符串,所有类型的值包括对象都可以当做键。

  6.2:创建Map集合:

    6.2.1:创建Map集合有两种:1.直接new Map()创建实例对象;2.接收一个数组作为参数来创建实例对象(该数组的成员必须是一个个表示键值对的数组)。

      

es6规范有哪些 es6类型_赋值_20

 

 

   

  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获取存储的数量。

      

es6规范有哪些 es6类型_es6规范有哪些_21

 

 

 

      

 

七、总结      

  1:var声明的变量是函数变量(全局变量和局部变量),会有变量提升的风险,可以先使用再声明,尽量少用。

  2:let声明的变量具有块级作用域的特性,即只能在声明的代码块中使用,只能先声明之后才能使用。

  3:const声明的变量是常量,常量的值不允许更改,如果常量是引用类型(对象或者数组),那么可以更改常量内部属性的值。

  4:解构就是分解数据结构,赋值就是为变量赋值;在ES6中允许从对象和数组以及任何可以遍历的数据类型进行解构赋值。

  5:箭头函数是将函数简化定义的一种方式,将箭头函数赋值给一个变量,变量名就是函数名称,通过调用变量名来调用函数。

  6:Set数据结构的声明方式分为两种:1、直接实例化一个空的Set()构造函数;2、在Set构造函数中传入一个数组。Set构造函数可以用来做数组去重等操作。

  7:Map数据结构的声明方式分为两种:1、直接实例化一个空的Map()构造函数;2、在Map构造函数中传入一个带有键值对的数组。