[ES7-8]新特性:

it2025-07-23  9

ES7新特性:

1.ES7新特性:1.1 Array.prototype.includes1.2 指数操作符: 2.ES8新特性:2.1 async 和 await2.1.1 async函数2.1.2 await 表达式 2.2 Object.values 和 Object.entries

1.ES7新特性:

1.1 Array.prototype.includes

includes 方法用来检测数组中是否包含某个元素,返回布尔类型值。

const mingzhu = ['西游记','红楼梦','三国演义','水浒传']; console.log(mingzhu.includes('西游记'));//-->true console.log(2**10);//-->1024

1.2 指数操作符:

在ES7中引入指数运算符(**),用来实现幂运算,功能与Math.pow结果相同。

2.ES8新特性:

2.1 async 和 await

async 和 await 两种语法结合可以让异步代码像同步代码一样。

2.1.1 async函数

1.async 函数的返回值为promise对象。 2.promise 对象的结构由 async 函数执行的返回值决定。

1.返回的结果不是一个Promise类型的对象, 则async修饰的这个函数的返回结果就是一个promise对象,且对象的状态是成功的,成功的值是return出的值。 2.抛出错误,返回的结果是一个失败的Promise对象。throw new Error(‘出错了’); 3.return如果是一个promise对象。那么返回的结果就是promise且promise的状态和值与return中的promise相同。

<script> // async 函数 async function fn(){ // 1.返回的结果不是一个Promise类型的对象, // 则async修饰的这个函数的返回结果就是一个promise对象,且对象的状态是成功的,成功的值是return出的值。 // return; // 2.抛出错误,返回的结果是一个失败的Promise对象 // throw new Error('出错了'); // 3.return如果是一个promise对象。那么返回的结果就是promise且promise的状态和值与return中的promise相同。 return new Promise((resolve,reject)=>{ resolve("成功的数据"); }); } const result = fn(); console.log(result); // 既然fn()返回的是promise对象,那么它就可以调用then方法 result.then(value => { // 鉴于上面的promise是成功的,走这里 console.log(value); },reason => { console.warn(reason); }) </script>

2.1.2 await 表达式

1.await 必须写在async函数中,但对于async函数而言await不是必须的。 2.await右侧的表达式一般为promise对象。 3.await返回的是promise成功的值。 4.await的promise失败了,就会抛出异常,需要通过try…catch捕获处理。

<script> // 创建promise对象 const p = new Promise((resolve,reject)=>{ // resolve("成功的值!"); reject("失败失败!") }) // await 要放在async函数中。 async function main(){ try{ // 这里的result返回的是promise对象成功的值,如果失败,需要另外捕获。 let result=await p; console.log(result);//-->成功的值! }catch(e){ console.log(e);//-->失败失败! } } // 调用函数 main(); </script>

2.2 Object.values 和 Object.entries

1.Object.values()方法返回一个给定对象的所有可枚举属性值的数组。 2.Object.entries()方法返回一个给定对象自身可遍历属性[key,value]的数组。 3.Object.getOwnPropertyDescriptors()方法,返回对象属性的描述对象。

最新回复(0)