es7
Array.prototype.includes
:判断是否包含某一个特定的值,包含则返回true
。- 指数运算符
**
:在es7之前写2的3次方,Math.pow(2,3)
,es7是2**3
es8
async/await
:这个竟然是es8的属性,一直以为es6出的,es6的generator
函数一样的作用,相当于是它的语法糖。Object.values()
:返回对象的值,与Object.keys()
(返回对象的键)作用混合使用。Object.entries()
:返回对象的键值对
for(let [key,value] of Object.entries(obj1)){
console.log(`key: ${key} value:${value}`)
}
- 字符串新增两个方法
String.prototype.padStart()
和String.prototype.padEnd
,允许向字符串的勤勉或者后面添加字符串到指定长度。
//hahah,由于3小于字符串的长度所以不会改变
'hahah'.padStart(3, 'addstring');
'hah'.padStart(6, 'abcdef'); //abchah
- 函数参数列表最后允许逗号结尾
Object.getOwnPrototypeDescriptors()
:返回对象的自身属性SharedArrayBuffer
对象Atomics
对象
es9
- 异步迭代,在循环中使用异步函数或者执行异步操作???
promise.finally()
:返回的promise对象无论是成功还是失败都会执行finally
函数- 扩展运算符(
...
) - 正则的命名捕捉
es10
- 数组方法
Array.prototype.flat()
(参数可以指定降的维数)和Array.peototype.flatMap(callback())
(callback给元素的每一项都执行操作后返回数组) - 字符串的
trimStart()
和trimEnd()
:去掉空白 Object.fromEntries()
:将可迭代的独享转为ObjectSymbol.prototype.description
:该属性可以直接返回Symbol对象的描述值BigInt
:新增的基本类型值,Number
可以准确表达的最大数字是2^53 -1,大于等于2 ^53 的所有数字可以使用BigInt
表达。不是构造函数,所以创建时使用BigInt(9007199254740991)
或m = 9007199254740991n
(后面加一个n)
借鉴(博文)