ES6/ES7/ES8新特性汇总
ES6起各个版本的新特性汇总
ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言。目前JavaScript使用的ECMAScript版本为ECMA-417。关于ECMA的最新资讯可以浏览 ECMA news查看。ECMAScript 标准建立在一些原有的技术上,最为著名的是 JavaScript (网景) 和 JScript (微软)。它最初由网景的 Brendan Eich 发明,第一次出现是在网景的 Navigator 2.0 浏览器上。Netscape 2.0 以及微软 Internet Explorer 3.0 后序的所有浏览器上都有它的身影。
ES6(2015年发布)
1.Class
2.模块化 :导入 export
、导出 import
3.箭头函数 :this指向定义时所在的对象,而不是使用时所值的对象
4.函数参数默认值:function app (age=25){…}
5.模版字符串
6.解构赋值:let [a,b]=[2,3] //a:2. b:3
7.延展运算符:...
8.对象属性简写 :{name :name}====>{name}
9.promise
对象
10.let,const
ES7(2016年发布)
1.新增数组的includes
属性:
Array.prototype.includes():[1].includes(1);//true
2.引入了(**
)指数操作符:2**10 //1024
ES8(2017年发布)
1.新增async await
使得异步改同步成为可能,避免代码书写的来回嵌套
2.新增Object.values()
:对象转数组
Object.values({a:1,b:2,c:3})===>[1,2,3]
3.新增Object.entries()
:对象转数组
Object.entries({a:1,b:2,c:3})===>[[a,1],[b,2],[c,3]]
4.新增字符串填充(padStart
,padEnd
)
1.padStart 'hello'.padStart(10) =>>>' hello'2.padEnd
'hello'.padEnd(10) =>>> 'hello '
'hello'.padEnd(10,'222') =>>> 'hello22222'
5.允许函数参数列表结尾存在逗号
6.添加Object.getOwnPropertyDescriptors()
: 获取一个对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象
7.新增SharedArrayBuffer
对象:用来表示一个通用的,固定长度的原始二进制数据缓冲区
/** @param {*} length 所创建的数组缓冲区的大小,以字节(byte)为单位。* @returns {SharedArrayBuffer} 一个大小指定的新 SharedArrayBuffer 对象。其内容被初始化为 0。*/
new SharedArrayBuffer(10)
8.新增Atomics
对象:提供了一组静态方法用来对 SharedArrayBuffer 对象进行原子操作
ES9(2018年发布)
1.允许异步迭代:await
可以和for…of
循环一起使用,以串行的方式运行异步操作
2.添加Promise.finally()
3.修改了正则表达式的一些属性(这块比较细节,MDN上查一下当前怎么用就行了)
const reg = /(year[0-9]{4})-(month[0-9]{2})-(day[0-9]{2})/;
const match = reg.exec(2021-02-23);
ES10(2019年发布)
1.新增数组的flat()
和 flatMap()
方法
- flat():把数组里的数组打开
[1, 2, [3, 4]].flat(Infinity); // [1, 2, 3, 4]
- flatMap():将map和flat两者结合起来
[1, 2, 3, 4].flatMap(a = [a**2]); // [1, 4, 9, 16]
2.修改了try catch
的使用,catch不必再由入参
3.增加字符串的trimStart, trimEnd
方法,分别是去掉首尾空格
4.增加Object.fromEntries
方法,可以把对应数组转成对象
5.增加Function.prototype.toString()
方便看到函数对应的内部代码
6.增加Symbol.prototype.description
方法
Symbol(‘test’). description === ‘test’ // true
7.对JSON对象的优化 JSON.superset
、JSON.stringify
ES11(2020年发布)
1.增加Bigint
:用于大数计算
2.增加可选链
: 简化书写判断
3.增加 ??
运算,如果左侧不为null或者undefined则返回 ??左侧内容
4.解决了 let num = number || 1 这种计算方式的bug
5.增加Promise.allSettled
方法
6.支持import()
函数用于异步加载
ES12(2021年发布)
1.增加字符串的replactAll
方法,之前要实现替换全部,需要使用正则表达式
const str = 'hello world';
str.replaceAll(l, ); // heo word// 之前
const str = '2-4-6-8-10';
const newStr = str.replace(/\-/g, '+');
console.log(newStr); //2+4+6+8+10// 现在可以
const str = '2-4-6-8-10';
const newStr = str.replaceAll('-', '+');
console.log(newStr); //2+4+6+8+10
2.新增Promise.any
方法 ,只要其中一个promise 成功,就返回那个promise 。
3.弱引用:
使用 WeakRefs 的 Class 类创建对对象的弱引用(对对象的弱引用是指当该对象应该被 GC 回收时不会阻止 GC 的回收行为)
4.新增了逻辑赋值操作符 ??=、&&=、 ||=
??=指的是当左侧变量值为 null 或 undefined 时, 右侧值赋值给左侧变量,并返回赋值后的值
&&=指的是逻辑与赋值,当左右条件都为真时,右侧值赋值给左侧变量
||=指的是逻辑或赋值,当左侧条件都为假时,右侧值赋值给左侧变量
5.增加下划线 (_
) 分隔符,它是数字间隔性符,可以在数字之间创建分隔符,通过下划线来分割数字,使数字化可计算
const money1=1_000_000_000
//等价于
const money2=1000000000money1===money2 //true
ES6/ES7/ES8新特性汇总相关推荐
- ES7/ES8新特性总结
es7新特性 ES2016添加了两个小的特性来说明标准化过程: 数组includes()方法,用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false. a ** b ...
- ES6-Promise简介、ES7 新特性及ES8新特性-async和await
目录 ES6-Promise Promise简介 Promise.prototype.then方法 Promise.prototype.catch方法 ES7 新特性 Array.prototype. ...
- ES7-ES11新特性汇总
前言 ES全称ECMAScript,ECMAScript 和 JavaScript 的关系是,前者是后者的规范,后者是前者的一种实现,从15年es6发版后,到目前的es11,es的新特性被广泛使用,成 ...
- 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理)
一.介绍 现在的网络上已经有各样关于 ECMAScript 规范介绍和分析的文章,而我自己重新学习一遍这些规范,整理出这么一份笔记,比较精简,主要内容涵盖ES6.ES7.ES8.ES9,后续会增加面试 ...
- oracle12c 新特性,12c Oracle数据库新特性汇总
12c Oracle数据库新特性汇总 中文社区 (MOSC) 数据库 (MOSC) 8 Replies Last updated on February 15, 2017 12c Oracle数据库有 ...
- Oracle 21C 新特性:数据泵相关新特性汇总
墨墨导读:本文来自墨天轮用户"JiekeXu"投稿,墨天轮主页:https://www.modb.pro/u/434,本文分享Oracle 21c 新特性:数据泵相关新特性汇总. ...
- JavaScript——ES8新特性
ES8新特性 一.async 和 await 1. async 函数 2. await 表达式 3. 实例 二.对象方法扩展 一.async 和 await async 和 await 两种语法结合可 ...
- coreldraw x7 分布_CorelDRAW X7新特性汇总
这篇教程是向大家介绍CorelDRAW X7新特性汇总,教程很不错,推荐过来,喜欢的朋友一起来学习吧 CorelDRAW X7新特性 一. 轻松启动和运行 CorelDRAW Graphics Sui ...
- android l 新功能,Android L怎么样 安卓L新特性汇总
在刚刚结束的2014谷歌IO大会上,谷歌共发布了8款新品,其中Android L成为发布会的一大看点.此次谷歌并没有将新安卓系统命名为Android 5.0,而是命名为Android L.仅从命名来看 ...
最新文章
- 大宗商品(Bulk Stock)交易
- easyui使用datagrid时列名包含特殊字符导致表头与数据错位的问题
- 独家专访 | 红布林(Plum​)庞博:万亿元二手时尚交易蓝海的生存法则
- FAT12中,如何定位大于一个扇区(512B)的文件内容
- 放弃手机后!罗永浩今年已带货19亿元
- 谷歌浏览器禁止右滑返回历史_早报:拼多多加大百亿补贴力度;嫦娥五号择机返回地球;贾跃亭再成被执行人;微信订阅号页面改版...
- 合同管理系统主要增加了安全性,对于大型企业作用重大
- 手机dpi修改工具_手机dpi修改器
- 呼和浩特php平均工资,2019年内蒙古平均工资出炉
- 数据库技术与应用习题2
- 文华财经wh6如何导入需要的指标
- 第08课:Retained 消息和 LWT
- php设计一个盒子类代码_PHP白盒审计工具RIPS源码简析
- Centos 系统折腾
- Visual Studio 中使用万能头文件 #include <bits/stdc++.h>
- Python编辑器UliPad安装
- 判断两个单链表是否相交及找到第一个交点
- 网易云音乐真实链接地址
- 利用 a 标签 实现 下载图片(不是打开)的正确姿势
- 程序员工作中沟通能力重要吗