ECMAScript2016 到 ECMAScript2021 的新语法

一、前言:
2009发布的js称为ES5,2015年发布的js称为ES6,之后不再叫ES,而是ECMAScript2016、ECMAScript2017......

二、ECMAScript2016 不叫ES7
1. 查找数组中是否存在某个元素:
const arr = [1,2,3,4];
console.log(arr.includes(3)) //true
2. 指数运算符:**
2**3 = 8 // 等价 Math.pow(2,3)

三、ECMAScript2017
1. 新加 padStart()、padEnd() 字符串填充方法
let str = '5'; str = str.padStart(4,0); // 0005
2. 新加 Object.entries(person)方法,返回值是[['name','Bill'],['age',15]]
3. 新加 Object.values(person)方法,返回的是对象的值
4. 异步函数:同步方式写异步,方法前添加 async,方法内部可以使用await等待异步完成
async function fetch1() {
const response = await fetch('/api/doctor/t');
const data = await response.json();
console.log('data', data)
// fetch('/api/doctor/t').then(response => {
// return response.json();
// }).then(data => {
// console.log('data', data)
// }).catch(error => {
// console.log("发生错误")
// })
console.log(2)
}


四、ECMAScript2018

五、ECMAScript2019
1. 新加 trimStart()、trimEnd()方法,类似trim()
2. 添加 Object.fromEntries(fruits)方法,该方法是Object.entries(person) 的相反方法
3. 添加 arr.flat()方法,该方法可以把二维数组转为一维数组
4. 添加 myArr.flatMap((x) => x * 3)方法, 迭代处理数组元素

六、ECMAScript2020
1. BigInt 大数值n,
2. ?? 未定义,null值
3. ?. 问下对象中是否有元素:
const car = {type:"Fiat", model:"500", color:"white"};
name = car?.name; // 防止对对象中不存在的值而报错
4. 其他:&&=,||=,??=

七、ECMAScript2021
1. 数组分隔符_:
let num1 = 1_000; let num2 = 1000; console.log(num1===num2); // true

 

posted @ 2024-06-27 16:37  龍飛鳯舞  阅读(26)  评论(0)    收藏  举报