ES7新特性
1,在ES6的基础上新增了两个功能,一个是数组的include方法、一个是Math.pow的简写语法。
ES8新特性
1,在异步操作、Object、String能力上做了进一步增强,让代码编写更加效率
2,Promise.all()提高效率
3, Object.value() Object.entries()
4,String Padding
String.prototype.padStart(targetLength,[padString])
targetLength 目标长度 padString 所增加的字符串,默认为空字符串
String.prototype.padEnd(targetLength,[padString]) 用法和padStart()相同
5,结尾允许逗号
6,Object.getOwnPropertyDescriptor() 获取对象的描述
运行结果:
7,SharedArrayBuffer 与Atomic
给js提供了多线程的的功能,共享内存的主要思想。通过postMessage发送数据或者内存地址,onmessage监听数据
Atomic设置线程休眠,唤醒线程
如下面的demo main.js 模拟主线程
ES9新特性
主要解决了遍历中异步、异步的归一操作等问题,也提供了对象的拷贝,筛选功能并且提升了正则的处理能力
1,新增异步迭代器 asyncchronous Iterator,异步执行语句 for…await…of,async generator
以上是同步的写法,异步迭代器写法如下:
2,异步生成器
3, Promise.finally()
4,扩展运算符,Rest/Spread
5,正则表达式的优化
ES10
ES10虽然没有大幅的改动,JSON问题修复、数组、字符串、对象、函数等能力进一步增强、同时新增的bigInt数据类型也格外引人注目
1,flat方法 可以将多维数组拉平,参数默认为1
2,Object.fromEntries(); 返回对象自身可枚举属性的键值对数组,Object.entries(); 和Object.fromEntries()相反
3,String.prototype.matchAll 返回包含所有匹配正则表达式及分组捕获迭代器
4,trimStart() trimEnd()去掉首尾空格
5,Catch 参数可以省略
6,Array.prototype.sort() 可以进行数组的稳定排序
7,Function.toString()标准化,返回精确字符
8,新增BigInt数据类型 任意精度整数 第7种基本数据类型
9,标准化globalThis 对象 在任何平台访问全局属性