乐趣区

关于前端:2022年马上都ES2022了还只知道ES6的新特性

2022 年,马上都 ES2022 了,还在看 ES6 的知识点?

面试的时候,面试官老是喜爱问一些你晓得 ES6 的新属性有哪些吗?

实际上,ES6 都是 2015 年出的标准了,当初都是 2022 年,还考试这个,未免有些掉队。

明天就带大家理一下,这些年,从 ES2015(ES6)到 ES2021 都减少了哪些个性

一、ES2015(ES6)

新增 let const 用于申明变量 const a = 1 ; let b = 2

新增变量解构 let [a, b, c] = [1, 2, 3];

增强对 Unicode 码的反对 ‘\u007A’ === ‘z’ // true

减少 String 的属性办法 fromCodePoint、raw、codePointAt

减少了字符串的遍历器接口

for (let codePoint of 'foo') {console.log(codePoint)
}

减少字符串的实例办法 includes()、startsWith()、endsWith()、repeat()、padStart(),padEnd()、trimStart()、trimEnd()、matchAll()、at()

批改了正则表达式的一些参数设置并新增了局部属性(太多,不具体列出来了就)

批改了函数的入参默认值的指定形式

减少了数组的解构办法(… 运算符)

减少了对象的简洁写法 例如{test} 它等同于 {test:test}

减少了 Set Map 两个数据结构

减少 Proxy 构造函数(vue 也是基于此做了降级)

减少 Promise 对象,用于解决异步编程

新增 class 关键字(语法糖),扭转了了之前原型的书写形式

减少 import export 用于模块编程(之前都在用,只不过 ES6 之后,社区规范变成了官网规范)

当然,还有一些其它变动,相对来说用的更少一些,这里就不提了

二、ES2016(ES7)

新增数组的 includes 属性

引入了 运算符(指数运算符)示例 2 3 //8

三、ES2017(ES8)

减少 async await 使得异步改同步成为可能,防止代码书写的来回嵌套

减少 Object.values() Object.entries()

减少 String padding:String.prototype.padStart、String.prototype.padEnd

容许函数参数列表结尾存在逗号

增加 Object.getOwnPropertyDescriptors(): 获取一个对象的所有本身属性的描述符, 如果没有任何本身属性,则返回空对象

新增 SharedArrayBuffer 对象:用来示意一个通用的,固定长度的原始二进制数据缓冲区

新增 Atomics 对象:提供了一组静态方法用来对 SharedArrayBuffer 对象进行原子操作

四、ES2018(ES9)

容许异步迭代:await 能够和 for…of 循环一起应用,以串行的形式运行异步操作

增加 Promise.finally()

批改了正则表达式的一些属性(这块比拟细节,mdn 上查一下以后怎么用就行了)

五、ES2019(ES10)

批改了 try catch 的应用,catch 不用再由入参

减少数组的 flat flatMap 办法
减少字符串的 trimStart, trimEnd 办法,别离是去掉首尾空格
减少 Object.fromEntries 办法,能够把对应数组转成对象
减少 Function.prototype.toString()不便看到函数对应的外部代码
减少 Symbol.prototype.description 办法

示例 Symbol(‘test’). description === ‘test’ // true

对 JSON 对象的优化 JSON.superset、JSON.stringify

六、ES2020(ES11)

减少 Bigint 用于大数计算

减少可选链 简化书写判断

减少 ?? 运算,如果左侧不为 null 或者 undefined 则返回 ?? 左侧内容

解决了 let num = number || 1 这种计算形式的 bug

减少 Promise.allSettled 办法

反对 import()函数用于异步加载

七、ES2021(ES12)

减少字符串的 replactAll 办法,之前要实现替换全副,须要应用正则表达式

减少 Promise.any 办法

新增了逻辑赋值操作符 ??=、&&=、||=

减少下划线 (_) 分隔符:应用 _ 分隔数字字面量以不便浏览 1_0000 === 10000 //true

以及 WeakRefs、Intl.ListFormat、Intl.DateTimeFormat(这三个用的个别也不多,感兴趣的自行查阅)

附、

2015 年 6 月正式公布 ES6,也称为 ES2015,尔后的每一年都会进行局部内容进行订正并在 6 月公布对应年号的 ES 版本,比方 ES2016~ES2021。ES2021 是 ECMAScript 语言标准的第 12 版,也被称为 ES12。当前为了防止混同,还是依照年份来称说吧!省的还做个转换。

退出移动版