ES6 知识点总结

  1. Let 和const

        (1)var有变量提升

                 有覆盖性

        (2)Let 声明变量没有变量提升

                 是一个块级作用域

                 Let不能重复声明

                 不会污染全局变量

        (3)const  声明的是一个常量   一旦赋值  无法修改

                 没有变量提升

                 是一个块级作用域   

                 Const 不能重复声明

          作用1:for循环是个经典例子   解决了var带来的提升问题

          

          作用2:不会污染全局变量

           

 

    2.模板字符串

          总结:模板字符串:使用tab键上面的反引号``,插入变量时使用${变量名}

          

    3.函数

(1)带参数默认值的函数

         ES5中如果函数没有实参:

         

 

         ES6中带参数默认值的函数:

          

 (2)   默认的表达式也可以是一个参函数

         

 (3)   剩余参数:由三个点...和一个紧跟着的具名参数指定    ...keys

         剩余参数(...key)解决了arguments  的问题

         ES5

        

         ES6

         

 (4)   扩展运算符。。。

     剩余运算符:把多个独立的合并到一个数组中

     扩展运算符:将一个数组分割,并将个个项作为分离的参数传给函数

     展开运算符不能展开对象

        

 (5) 箭头函数

     使用=>来定义 function(){}等于与() =()=》{}   

        

      

4.箭头函数的this指向(没有this绑定)

箭头函数没有this指向,箭头函数内部this值只能通过查找作用域来确定,一旦使用箭头函数,当前就不存在作用域链

使用箭头函数的注意事项:

(1)es5中的this指向:取决于调用函数的上下文对象

(2)使用箭头函数的注意事项:

1.使用箭头函数函数内部没有arguments

2.箭头函数不能使用new关键字来进行实例化对象

3.function 函数  也是一个对象,但是箭头函数不是一个对象,他其实就是一个语法糖

5.解构赋值

解构赋值是对复制运算符的一种扩展

他针对数组和对象进行操作

优点:代码书写上简单易读

(1)完全结构

       

(2)不完全结构   可忽略

     

 (3)对象数组结构

      

 6. 扩展对象功能

    es6直接写入变量和函数,作为对象属性和方法

     

      对象的方法   is()===   主要是判断nan

      对象的合并  

      

 7. Symbol

原始类型symbol,他表示是独一无二的值

最大的用途:用来定义对象的私有变量

如果用symbol定义的对象中的变量,取值时一定要用【变量名】   不能遍历

获取symbol声明的属性名(作为对象key)

  8. Map 和 Set

set集合   无重复值得有序列表

Set.add添加元素

Set.delete  删除元素

Set.has()效验某个值是否在set中

Set.Size查看数组的长度

Map  类型是键值对的有序列表,键和值是任意类型

 

 

  9. 数组的扩展

   

数组的方法   from   of()

(1)From()将一个伟数组转换成正正的数组

(2)Of()任意的数据类型转换为数组

(3)Copywithin()数组内部将制定位置的元素复制到其他的位置返回当前数组

(4)Find找出第一个符合条件的数组成员

findIndex:找出第一个符合条件的数组成员的索引

(5)entries()   keys()  values()返回一个遍历器   可以使用for...of循环进行遍历

         Keys:对键名遍历

         Values:对值遍历

         Entries()对键值对遍历

 (6)includes()返回一个布尔值,表示某个数组是否包含给定的值    替代了indexof

   10. 迭代器

     迭代器是一种新的便利机制    两个核心

  1. 迭代器是一个接口 能快捷的访问数据 ,通过Symbol.iterator来创建迭代器  通过迭代器的next()获取迭代之后的结果
  2. 迭代器适用于遍历数据结构的指针(数据库的游标)

    11. 生成器     

Generator函数:可以通过yield关键字,将函数挂起,为了改变执行流提供了可能,同时为了做异步编程提供了方案

  1. 它和普通函数的区别
  1.   (1) function后 函数名前面有一个*(2)只能在函数内部使用yield表达式,让函数挂起
  2. 应用场景:为不具备interator接口的对象提供了遍历操作

总结:Generator函数是分段执行的  yield语句是暂停执行 而next()恢复执行

12. Promise

promise相当于一个容器,保存着未来才会结束的事件(异步操作)的一个结果

各种异步操作都可以用同样的方式进行处理  axios

特点:

  1. 对象的状态不受外界影响   处理异步操作   三个状态   pending(进行中) resolved(成功) rejected(失败)
  2. Then()第一个参数时relove回调函数,第二个参数可选的   是relove状态的回调函数

13. Async

作用:使得异步操作更加方便

基础操作:async他会返回一个promise 对象

Async  是Generator 的一个语法糖

如果async函数中有多个await   那么then 函数就会等待所有的await指令运行完的结果才去执行   

14.class类

通过object.Assign()方法一次性向类中添加多个方法

类的继承    (使用关键字)extends

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值