es8
1. Object.values
可以用来获取对象的 value 的集合
const obj = {
name: "柯基",
age: 22,
gender: "男",
};
const values = Object.values(obj);
console.log(values); // [ '柯基', 22, '男' ]
2. Object.entries
可以用来获取对象的键值对集合
const obj = {
name: "柯基",
age: 22,
gender: "男",
};
const entries = Object.entries(obj);
console.log(entries);
// [ [ 'name', '柯基' ], [ 'age', 22 ], [ 'gender', '男' ] ]
3. async/await
理解就是:以同步方式执行异步操作
平时可能会遇到这种场景,接口一,请求到数据一,而数据一被当做请求二的参数去请求数据二,会用 Promise 这么做
function fn() {
// 模拟第一次请求
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(5);
}, 1000);
}).then((res) => {
// 模拟第二次请求
new Promise((resolve, reject) => {
setTimeout(() => {
// 拿第一次请求的数据去乘10,当做第二次请求的数据
resolve(res * 10);
}, 2000);
}).then((sres) => {
console.log(sres);
});
});
}
fn(); // 1 + 2 = 3 3秒后输出 50
这样的嵌套是不美观的,如果有很多个接口,那就会嵌套很多层,此时可以使用 async/await 来以同步方式执行异步,注意以下几点:
await 只能在 async 函数里使用
await 后面最好接 Promise,如果后面接的是普通函数则会直接执行
async 函数返回的是一个 Promise
function fn1() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(5);
}, 1000);
});
}
function fn2(data) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(data * 10);
}, 2000);
});
}
async function req() {
// 同步方式执行异步,像排队一样
const data1 = await fn1(); // 等待1秒后返回数据再往下执行
const data2 = await fn2(data1); // 拿data1去请求2秒后,往下走
console.log(data2); // 总共3秒后 输出 50
}
req();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南