美文网首页
前端知识ES6(1)

前端知识ES6(1)

作者: Pickupthesmokes | 来源:发表于2018-09-25 17:15 被阅读0次

    ES6

    let关键字

    1. 作用:
    
    * 与var类似, 用于声明一个变量
    
    2. 特点
    
    * 在块作用域内有效
    
    * 不能重复声明
    
    * 不会预处理, 不存在变量提升
    
    3. 应用
    
    * 循环遍历加监听
    
    * 使用let取代var是趋势
    

    const关键字

    1. 作用:
    
    * 定义一个常量
    
    2. 特点:
    
    * 不能修改
    
    * 其它特点同let
    
    3. 应用
    
    * 保存不用改变的数据
    

    变量的解构赋值

    1. 理解:
    
    * 从对象或数组中提取数据, 并赋值给变量(多个)
    
    2. 对象的解构赋值
    
    let {n, a} = {n:'tom', a:12}
    3. 数组的解构赋值
    
    let [a,b] = [1, 'hello'];
    4. 用途
    

    给多个形参赋值

    模板字符串
    1. 模板字符串 : 简化字符串的拼接
    
    * 模板字符串必须用 `` 包含
    
    * 变化的部分使用${xxx}定义
    

    简化的对象写法

    1. 省略同名的属性值
    
    2. 省略方法的function
    
    3. 例如:
    
    let x = 1;
    let y = 2;
    let point = {
        x,
        y,
        setX (x) {this.x = x}
    };
    

    箭头函数

    1. 作用: 定义匿名函数
    
    2. 基本语法:
    
    * 没有参数: () => console.log('xxxx')
    
    * 一个参数: i => i+2
    
    * 大于一个参数: (i,j) => i+j
    
    * 函数体不用大括号: 默认返回结果
    
    * 函数体如果有多个语句, 需要用{}包围,若有需要返回的内容,需要手动返回
    
    3. 使用场景: 多用来定义回调函数
    
    4. 箭头函数的特点:
    
    1、简洁
    
    2、箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候所处的对象就是它的this
    
    3、扩展理解: 箭头函数的this看外层的是否有函数,如果有,外层函数的this就是内部箭头函数的this,如果没有,则this是window。
    

    扩展运算符

    1. rest(可变)参数
    
    * 用来取代arguments 但比 arguments 灵活,只能是最后部分形参参数
    
    function fun(...values) {
        console.log(arguments);
        arguments.forEach(function (item, index) {
            console.log(item, index);
        });
        console.log(values);
        values.forEach(function (item, index) {
            console.log(item, index);
        })
    }
    
    fun(1,2,3);
    2. 扩展运算符
    
    let arr1 = [1,3,5];
    let arr2 = [2,...arr1,6];
    arr2.push(...arr1);
    形参默认值
    当不传入参数的时候默认使用形参里的默认值
    
    function Point(x = 1,y = 2) {
        this.x = x;
        this.y = y;
    }
    

    Promise对象

    1. 理解:
    
    * Promise对象: 代表了未来某个将要发生的事件(通常是一个异步操作)
    
    * 有了promise对象, 可以将异步操作以同步的流程表达出来, 避免了层层嵌套的回调函数(俗称'回调地狱')
    
    * ES6的Promise是一个构造函数, 用来生成promise对象的实例
    
    2. 使用promise基本步骤(2步):
    
    * 创建promise对象
    
    let promise = new Promise((resolve, reject) => {
        //初始化promise状态为 pending
      //执行异步操作
      if(异步操作成功) {
        resolve(value);//修改promise的状态为fullfilled
      } else {
        reject(errMsg);//修改promise的状态为rejected
      }
    })
    * 调用promise的then()
    
    promise.then(function(
      result => console.log(result),
      errorMsg => alert(errorMsg)
    ))
    3. promise对象的3个状态
    
    * pending: 初始化状态
    
    * fullfilled: 成功状态
    
    * rejected: 失败状态
    
    4. 应用:
    
    * 使用promise实现超时处理
    
    * 使用promise封装处理ajax请求
    
    let request = new XMLHttpRequest();
    request.onreadystatechange = function () {
    }
    request.responseType = 'json';
    request.open("GET", url);
    request.send();
    

    相关文章

      网友评论

          本文标题:前端知识ES6(1)

          本文链接:https://www.haomeiwen.com/subject/inmloftx.html