ES6、ES7、ES8、ES9、ES10、ES11

news/2025/1/18 11:29:02/

目录

一、ES6

二、ES7

三、ES8

四、ES9


一、ES6

点击跳转

二、ES7

1.Includes方法:检测数组是否包含某个元素,返回布尔值

const mingzhu = ['西游记', '红楼梦', '三国演义', '水浒传'];
console.log(mingzhu.includes('西游记')); // true
console.log(mingzhu.includes('金瓶梅')); // false

2.指数操作符 ** 来实现幂运算 , 与Math.pow结果一样

// **
console.log(2 ** 10); // 1024
// Math.pow()
console.log(Math.pow(2, 10)); // 1024

三、ES8

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

2.promise函数

1)、async函数的返回值为promise对象

2)、promise对象的结果由async函数返回值决定

async function fn() {// 1.返回一个不是promise类型的对象,  return出去的都是一个成功的promise对象// return '返回成功的状态'// 2.抛出错误, return出去的是一个失败的promisethrow new Error('出错了')// 3.返回的结果如果是一个promise对象return new Promise((resolve, reject) => {resolve('我成功返回的就是一个成功的promise');reject('我失败返回的就是一个失败的promise');})
}
const result = fn();
console.log(result);

 通过then、catch获取到的不是promise 而是promise的值

// 调用resolve返回成功的promise
async function fn() {return new Promise((resolve, reject) => {resolve('我成功返回的就是一个成功的promise');reject('我失败返回的就是一个失败的promise');})
}
const result = fn();
// 调用 then 方法
result.then(res => {console.log(res) // 直接打印出primice对象的值 我成功返回的就是一个成功的promise
}).catch(err => {console.log(err) // 直接打印出primice对象的值 我失败返回的就是一个失败的promise
})

3.await表达式

// 创建promise 对象
const p = new Promise((resolve, reject) => {resolve('成功啦');reject('失败啦')
})// await 要放在async函数中
async function main() {try {let result = await p; // await p 是获取成功的返回值console.log(result); // 成功啦} chtch(e) { // e为失败的返回值console.log(e); // 失败啦}
}// 上面的try其实你可以理解为then和catch方法一样记

4.async和await的结合使用把异步变同步

const fn1 = () => console.log("fn1")
const fn2 = () => console.log("fn1")
const fn3 = () => console.log("fn1")// 声明一个async函数
async function main() {let fun1 = await fn1();let fun2 = await fn2();let fun3 = await fn3();console.log(fun1);console.log(fun2);console.log(fun3);
}main();
// 分别打印出:
// fn1
// fn2
// fn3
// 从上到下跟同步一样按顺序执行  因为有一个await关键字  只有上一个await执行完毕了才会执行下一个await    

5.Object.keys()和Object.values()

const school = {name: '尚硅谷',cities: ['上海', '上海', '深圳'],xueke: ['前端', 'java'],
};
// 获取对象的所有键
console.log(Object.keys(school)); // ['name', 'cities', 'xueke']
// 获取对象的所有值
console.log(Object.values(school)); // ['尚硅谷', ['上海', '上海', '深圳'], ['前端', 'java']]

6.entres

const school = {name: '尚硅谷',cities: '啊啊啊',xueke: '哦哦哦',
};console.log(Object.entries(school)); // [["name", "尚硅谷"], ["cities", "啊啊啊"], ["xueke", "xueke"]]

四、ES9

1.对象的rest参数

function connect({host, prot, ...user}) {console.log(host); // 127.0.0.1console.log(port); // 3306console.log(user); // {username: "root", password: "root", type: "mater"}
}connect({host: '127.0.0.1',port: 3306,username: 'root',password: 'root',type: 'mater'
})

2.对象的扩展运算符

const skillOne = {q: '天音波'
}
console.log(...skillOne); // q: '天音波'
const skillTwo = {W: '金钟罩'
}
const skillThree = {e: '天雷破'
}
const mangseng = {...skillOne, ...skillTwo, ...skillThree};
console.log(mangseng); // {q: '天音波', W: '金钟罩', e: '天雷破'}

3.正则扩展-命名捕获分组

通过下标捕获分组

// 声明一个字符串
let str = '<a href="http:// www.atguigu.com">尚硅谷</a>';
// 提取 url 与 尚硅谷文本
const reg = /<a href="(.*)">(.*)<\/a>/;
// 执行
const result = reg.exec(str); // [0: <a href="http:// www.atguigu.com">尚硅谷</a>, 1: http:// www.atguigu.com, 2: 尚硅谷];
// 获取第一个分组的(.*)的内容
console.log(result[1]); // http:// www.atguigu.com
// 获取第二个分组的(.*)的内容
console.log(result[1]);  // 尚硅谷

通过命名捕获分组

// 声明一个字符串
let str = '<a href="http:// www.atguigu.com">尚硅谷</a>';
// 提取 url 与 尚硅谷文本
const reg = /<a href="(?<url>.*)">(?<text>.*)<\/a>/;
// 执行
const result = reg.exec(str); 
// 获取命名为url的内容
console.log(result.groups.url); // http:// www.atguigu.com
// 获取命名为text的内容
console.log(result.groups.text);  // 尚硅谷

3.正则扩展 - 正向断言

// 声明字符串
let str = 'JS5211314你知道么555啦啦啦';
// 正向断言
const reg = /\d+(?=啦)/;
const result = reg.exec(str);
console.log(result[0]); // 555

4.正则扩展 - 反向断言

// 声明字符串
let str = 'JS5211314你知道么555啦啦啦';
// 反向断言
const reg = /(?<=么)\d+/;
const result = reg.exec(str);
console.log(result[0]); // 555

其他的不写了  感觉用不上浪费时间


http://www.ppmy.cn/news/131421.html

相关文章

android系统能内存卡,手机SD卡可以作为内置存储吗? 安卓6.0将支持microSD卡作为内置存储...

过去不少厂商为了引导用户选择存储空间更大更昂贵的机型&#xff0c;纷纷取消了外置存储卡的功能。然而大部分用户自始至终都更青睐支持外置存储卡的手机&#xff0c;这也迫使手机厂商调整策略。现在就连一向排斥外置存储卡的谷歌也在安卓6.0中加入了将外置存储卡作为内置存储的…

linux检测扩容卡,TF内存卡是不是扩容卡准确质量检测

如果你花了很少的钱买了一个非常大容量的内存卡&#xff0c;那么就要小心了&#xff0c;你可能买到的是一个扩容的内存卡&#xff0c;所谓扩容就是说容量的虚拟的&#xff0c;真实容量可能只有一成不到&#xff0c;比如64G的内存卡&#xff0c;实际容量可能只有4G&#xff0c;那…

linux检测扩容卡,教你检测SD卡内存卡是否被扩容过的方法

新购买一个便宜的内存卡&#xff0c;使用一段时间后&#xff0c;发现不能存东西了&#xff0c;或者不能再读了&#xff0c;怎么回事呢&#xff1f;其实发生这些问题就是SD卡内存卡烧了。其实很多人购买便宜内存卡多半是扩容的&#xff0c;实际容量不到标称容量的1/4。那么如何检…

android 手机存储位置设置,如何将红米手机外置SD卡设定为默认存储

在国产机中&#xff0c;小米的地位越来越具优势&#xff0c;低价高配已经成为了小米手机的代言词&#xff0c;799元的红米手机最能说明问题&#xff0c;红米手机已经销售了有一段时间了&#xff0c;随之而来的一些小问题让用户有些头疼&#xff0c;其中包括无法将外置SD卡设定为…

手机闪存速度排行_手机很卡可能是只是因为闪存颗粒太差 EMMC UFS大对比

原标题&#xff1a;手机很卡可能是只是因为闪存颗粒太差 EMMC UFS大对比 在经历了华为的“闪存门”事件以后&#xff0c;人们都开始关注关于手机内存的相关知识。那么所谓的EMMC和UFC到底有什么差别&#xff0c;那一个更好一些呢&#xff1f;接下来我们将仔细讲解。 大众了解到…

用计算机读取机读卡信息,摄像机SD卡无法读取怎么办

一般用摄像机摄像的时候都是在发生比较有纪念意义的事情的时候,但是摄像完后把SD数据拷出来,却发现SD卡不能读取了,怎么办?相信,如果遇到这个问题的网友一定会急的像热锅上的蚂蚁。下面我们就来讨论下如果遇到这种问题了的解决办法。 先确认是SD卡的问题还是摄像机的问题。…

苹果电脑更改sd卡只读_SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡

这几天很郁闷,买的32G TF卡老出问题,三星的标,不知道是不是正品,标称C10,且不说是不是真的三星和真的C10,反正测试一下容量倒是真的,价格么也比较亲民,好像是69块? 哎,可惜呀,好景不长,坏了,变只读了。 这卡一直放老婆手机里用,上周突然手机不正常了,各种怪异…

适合手机运行的服务器系统,同样2GB内存 手机为啥不如电脑运行好?

电子设备流畅的运行,直接影响到用户的应用体验,应用体验是一个新兴的概念,但却是衡量电子设备优劣的一个重要指标,对电子产品的购买产生着直接的影响。 影响电子设备应用体验最直接因素就是硬件配置,相同的配置也有可能有不同的应用体验。在ZOL官方论坛中,就有多个网友提…