• es7重点笔记


    1,函数绑定运算符,用来取代call,apply,bind调用,写法:并排的双冒号(::),左边是对象,右边是函数

    foo :: bar;  // 等同于bar.bind(foo);

    双冒号返回的还是原对象,所以可以用链式写法。

    2,允许在函数定义或者调用时最后一个参数添加逗号

    function fn(a,b,) {}

    3,Object.values(obj):返回一个数组,成员是参数对象obj的自身(不含继承)可遍历的属性的键值,不是键名。

    4,Object.entries(obj):返回一个数组,成员是参数对象obj的自身(不含继承)可遍历的属性的键值对数组,是一个一个小数组,键值对中间是逗号,数组里面套数组。

    var obj = {foo: 'bar', baz: 42};
    Object.entries(obj);
    
    // [ ['foo', 'bar'], ['baz', '42'] ]
    

      

    5,对象的扩展运算符

    es6规定了数组的扩展运算符(...)

    const [a, ...b] = [1, 2, 3];
    
    a;   // 1;
    
    b;   // [2, 3]
    

      

    es7将这个引入了对象:

    let {x, y, ...z} = { x:1, y:2, z:3, a:4 };
    x;   // 1
    y:   // 2
    z;   // {z: 3, a: 4};
    

     

    跟数组的解构赋值一样,必须是最后一个参数,这里有一个坑:

    如果变量名和后面的键名不是对应的一模一样,那么就会返回undefined,除了最后的扩展运算符,前面的只有一样的才会返回对应的值,而最后的扩展运算符会把前面所有没有匹配到的属性全部放在一起作为最后一个对象。

    let {a, y, b,...c} = { x:1, y:2, q: 5, z:3, a:4 };
    a;   // undefined;
    y:   // 2;
    b:   // undefined;
    z;   // {x: 1, q: 5, z: 3, a: 4};
    

      

    6,Object.getOwnPropertyDescriptors()

    返回指定对象所有自身属性(非继承)的描述对象,就是{ 属性名:{ Object.defineProperties第二个参数 } }

    7,数组实例的includes(),

    数组是否包含某个元素,有就返回true,没有就false,可以传NaN来检测NaN。es5的indexOf无法检测NaN

    8,(待续)

  • 相关阅读:
    Java下载execl表格
    ajax请求下载Execl表
    Spring Boot2.4双数据源的配置
    使用nginx对spring boot项目进行代理
    spring mvc中几种获取request对象的方式
    做开发十年,我总结一些开发经验
    linux基础指令以及权限管理
    ArrayList调用remove(int index)抛出UnsupportedOperationException问题分析以及解决记录
    ubuntu16.06+vsftpd+nginx搭建图片服务器
    RPC框架基础概念理解以及使用初体验
  • 原文地址:https://www.cnblogs.com/yanchenyu/p/7886253.html
Copyright © 2020-2023  润新知