阅读 146

ES7/ES8/ES9/ES10 新特性整理

ES7新特性

1,在ES6的基础上新增了两个功能,一个是数组的include方法、一个是Math.pow的简写语法。

image.png

ES8新特性

1,在异步操作、Object、String能力上做了进一步增强,让代码编写更加效率

image.png

image.png

2,Promise.all()提高效率

image.png 3, Object.value() Object.entries()

image.png

4,String Padding String.prototype.padStart(targetLength,[padString]) targetLength 目标长度 padString 所增加的字符串,默认为空字符串 String.prototype.padEnd(targetLength,[padString]) 用法和padStart()相同

image.png

5,结尾允许逗号

image.png 6,Object.getOwnPropertyDescriptor() 获取对象的描述

image.png

运行结果:

image.png 7,SharedArrayBuffer 与Atomic 给js提供了多线程的的功能,共享内存的主要思想。通过postMessage发送数据或者内存地址,onmessage监听数据 Atomic设置线程休眠,唤醒线程 如下面的demo main.js 模拟主线程

image.png

image.png

ES9新特性

主要解决了遍历中异步、异步的归一操作等问题,也提供了对象的拷贝,筛选功能并且提升了正则的处理能力 1,新增异步迭代器 asyncchronous Iterator,异步执行语句 for...await...of,async generator

image.png 以上是同步的写法,异步迭代器写法如下:

image.png

2,异步生成器

image.png

3, Promise.finally()

image.png

4,扩展运算符,Rest/Spread

image.png 5,正则表达式的优化

image.png

image.png

image.png

ES10

ES10虽然没有大幅的改动,JSON问题修复、数组、字符串、对象、函数等能力进一步增强、同时新增的bigInt数据类型也格外引人注目 1,flat方法 可以将多维数组拉平,参数默认为1

image.png

2,Object.fromEntries(); 返回对象自身可枚举属性的键值对数组,Object.entries(); 和Object.fromEntries()相反

image.png

3,String.prototype.matchAll 返回包含所有匹配正则表达式及分组捕获迭代器

image.png

4,trimStart() trimEnd()去掉首尾空格 5,Catch 参数可以省略

image.png

6,Array.prototype.sort() 可以进行数组的稳定排序

image.png

7,Function.toString()标准化,返回精确字符

image.png

8,新增BigInt数据类型 任意精度整数 第7种基本数据类型

image.png

9,标准化globalThis 对象 在任何平台访问全局属性

image.png

文章分类
前端
文章标签