ES6(模板字符串,三点运算符,Symbol,iterator接口)

模板字符串

作用:简化字符串的拼接

  • 模板字符串必须用``包含

  • 变化的部分使用${xxx}包含

对象的简写方式

  • 同名的属性可以省略不写

  • 可以省略函数的function

箭头函数

箭头函数的特点

  • 箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this

  • 扩展理解:

    • 箭头函数的this看外层的是否有函数

    • 如果有,外层函数的this就是内部箭头函数的this

    • 如果没有,则this是window

形参的情况

  1. 没有形参的时候

        let fun1 = () => console.log(a);
    fun1();
  2. 只有一个形参的时候

        let fun2 = a => console.log(a);
    fun2('aaa');

  3.两个及两个以上的形参的时候 ()不能省略

          let fun3 = (x,y) => console.log(a);
  fun3(35,52);

函数体的情况

  1. 函数体只有一条语句或者是表达式的时候{}可以省略------>会自动但会语句执行的结果或者是表达式的结果

  2. 函数体不止一条语句或者是表达式的情况下{}不可以省略

三点运算符

1.rest(可变)参数

  用来取代arguments ,但比arguments灵活,只能是最后部分形参参数

2.扩展运算符

promise对象

1.理解

  • promise对象:代表了未来某个将要发生的时间(通常是一个异步操作)

  • 有了promise对象,可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数(俗称回调函数)

  • ES6的Promise是一个构造函数,用来生成promise实例

2.使用promise对象的基本步骤

# 创建promise对象
let promise = new Promise((resolove,reject) => {
//初始化状态为pending
//执行异步操作
if(异步操作成功){
resolve(value); //修改promise的状态为fullfilled
}else{
reject(errMsg); //修改promise的状态为rejected
}
})
# 调用promise的then()
promise.then(function(
   result => console.log(result),
   erroring => alert(erroring)
)

3.promsie对象的3个状态

  • pending:初始化状态

  • fullfilled:成功状态

  • rejected:失败状态

4.应用

  • 使用premise实现超试处理

  • 使用promise封装处理ajax请求

    let requset = new XMLHttpRequset();
    requset.onreadystatechange = function(){
    }
    request.responseType = 'json';
    requset.open('GET',url);
    requset.send();

Symbol

ES6新增的原始数据类型

特点:

  1. Symbol属性值对应的值是唯一的,解决命名冲突问题

  2. Symbol值不能与其他数据进行计算,包括同字符串拼串

  3. 3.for in,for of遍历时不会遍历symbol属性

使用:

  1. 调用Symbol函数得到symbol值

  2. 传参标识

  3. 内置Symbol值

    • 除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法

      Symbol.iterator

    • 对象的Symbol.iterator属性,指向该对象的默认遍历器方法

iterator接口

  将iterator接口部署到指定的数据类型上,可以使用for of循环遍历

  数组,字符串,arguments,set容器,map容器

原文地址:https://www.cnblogs.com/yaokai729/p/11370160.html