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