ES7,ES8,ES10新特性

    技术2022-07-11  101

    ES7

    ES7在ES6的基础上增加了三项内容

    求幂运算符 ** console.log(3 ** 2 ) // 9 Array.prototype.includes()方法 includes()的作用是查找一个值在不在数组中,接受两个参数:搜索值和搜索的开始索引。如果没有传递参数默认的索引是0 // 下面的这两种方法是等价 [1,2,3].indexOf(2) > -1 // true; [1,2,3].includes(2) // true; 两种方法都使用的是 === 操作符作值比较,但是includes方法不同的是:两个NaN会被认为是相等的。不遵循严格模式的处理,但是indeOf会遵循严格模式的处理

    ES8

    async ,await异步解决方案 async和await本质上是Generator的语法糖,相比于Promise来说async和await更加简洁 // Promise写法 function promise(){ var pro = new Promise((resolve)=>{....}).then(val=>{...}) return pro } promise().then(()=>{....}) // async 写法 async function getData(){ let pro = await promise() } Object.entries(): 将对象的可枚举属性与值按照二维数组的方式返回,目标对象是数组,则会将数组的下标作为键值返回 Object.entries({a:1,b:2}) // [["a", 1], ["b", 2]] Object.values() 将对象中的值按照一维数组的方式返回 Object.entries({a:1,b:2}) // [1, 2] 字符串填充padStart(),padEnd() let str = fanfan str.padStart(9,'6') // 666fanfan str.padEnd(9,'6') // fanfan666 如果第一个参数的小于字符串的长度则不会填充

    ES10

    flat() 按照指定的深度遍历数组,将所有元素与便利到的子数组中的元素合并为一个新的数组返回。使用: 数组降维,去除数组的空项 let arr = [1, 2, [3, 4]] arr.flat() // [1, 2, 3, 4] // 还可以设置深度 let arr = [1, 2, [3, 4, [5, [6]]]] arr.flat(3) // [1, 2, 3, 4, 5, 6] // 如果我们不确定到底有多少层可以直接使用Infinity flatMap() 首先使用映射函数映射没个元素,然后将结果压缩成一个新数组, let arr = [1, 2, 3, 4]; arr.flatMap(x=>[x * 2]) // [2, 4, ]

    发现一个写的比较全的_,引用一下谢谢博主上沅兮: https://juejin.im/post/5ca2e1935188254416288eb2

    Processed: 0.015, SQL: 10