美文网首页
es6,es7,es8,es9,es10

es6,es7,es8,es9,es10

作者: 加号_ZSL | 来源:发表于2020-07-02 15:36 被阅读0次

    1. ES6 提供了 Map 数据结构,主要用于数组去重

    var arr=[1,2,3,4,3,3,2,5]

    var map=newMap()

    arr.forEach((value,index)=>{map.set(value,index)})

    var newArr=Array.form(map.keys())

    2. ES7在ES6的基础上添加三项内容:求幂运算符(**)、Array.prototype.includes()方法、函数作用域中严格模式的变更。

        2.1> 幂运算

        2**3 // 8

        2.2> includes

        [1,2,3].includes(3) // true 还有一个indexof方法类似

    3. ES8

    3.1>  async、await异步解决方案

        a() {

            return 异步请求返回数据

        }

        async b() {

            var res = await a(); // 方法b会等待方法a执行完再执行

        }

    3.2> Object.entries(): Object.values()

    Object.entries():

    对于对象 会把每一对键值放到一个数组中, 再结合放到一个数组中转换为一个新的二维数组

    Object.entries({name:1, age: 2}) // [["name", 1], ["age", 2]];

    对于数组 会把下标和对应的值组成一个对象的一项, 再按上面的方法转换

    Object.entries([1,2]) // [["0", 1], ["1", 2]]

    Object.values()

    Object.values({a:1, b: 2}) // [1, 2]

    Object.values([1,2]) // [1,2]

    4 ES9 命名捕获  反向引用命名捕获

    5 ES10

        flat()

        两个都是数组的方法

        arr = [1,2,3, [22,33], [6,7,[3,5,7]]]

        arr.flat() //  [1, 2, 3, 22, 33, 6, 7, Array(3)]

        arr.flat(Infinity) // [1, 2, 3, 22, 33, 6, 7, 3, 5.7]

    注: Infinity 深度降维, 不写就只降低一层

        去除空项

        arr=[1,2, ,4,5];
        arr.flat(); // [1, 2, 4, 5]

        flatMap()

        arr=[1,2,3,4];

        arr.map(x=>[x*2]);// [[2], [4], [6], [8]]

        arr.flatMap(x=>[x*2]);// [2, 4, 6, 8]

        // 只会将 flatMap 中的函数返回的数组 “压平” 一层

        arr.flatMap(x=>[[x*2]]); // [[2], [4], [6], [8]]

    相关文章

      网友评论

          本文标题:es6,es7,es8,es9,es10

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