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。当前为了防止混同,还是依照年份来称说吧!省的还做个转换。