es6,es7,es8,es9,es10

2020-07-02  本文已影响0人  加号_ZSL

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]]

上一篇下一篇

猜你喜欢

热点阅读