ES8新增特性

在这里插入图片描述

前言

ES8是2017年发布的新特性,也被称为ES2017。

1、异步函数(async、await)

异步函数的引入,解决了异步函数同步的问题。使用promise请求时,虽然解决了回调地狱的问题,
但是使用多个then()链式调用显得代码可读性也不强。
async关键字作用于函数上,使函数返回一个promise对象,async函数内部,可以使用await关键字来暂停异步代码的执行,等await关键字的异步或普通函数的执行结果。

<script>
function requireApi(s) {
return new Promise(resolve => {
	setTimeout(()=>{
		console.log(s);
		resolve(s);
	},s);
})
}
async function getData(){
	await requireApi(1000);
	await requireApi(300);
	await requireApi(500);
}
getData();
</script>

打印输出结果: 1000 300 500
await暂停代码,等待结果返回才会继续往下执行,这对于处理异步操作提供了更简洁的语法。

Object.getOwnPropertyDescriptors()

Object.getOwnPropertyDescriptors()方法可以返回对象所有自身属性的描述符,包括可枚举的属性和不可枚举的属性。

let obj = {
	name: '看看',
	age: 12
}
let des = Object.getOwnPropertyDescriptors(obj);
console.log(des.name)
console.log(des.age)

控制台结果如下:
在这里插入图片描述

字符串填充方法(padStart(),padEnd() )

很多时候数据显示需要统一格式,之前还需要判断数据的长度再进行数据填充,现在引入了字符串填充方法,无论是想要在前面填充还是后面填充皆可满足,使得代码的书写非常简洁方便。
padStart(),padEnd() 两个参数,第一个表示字符串填充长度,第二个是填充数据,当本身数据长度大于或等于填充的长度时,字符串不变,返回原本的字符串。

let str = '123';
console.log(str.padEnd(10,'-'));
console.log(str.padEnd(3,'-'));

运行结果如下:
在这里插入图片描述

共享内存与原子操作(Shared Memory and Atomics)

引入了SharedArrayBuffer和Atomics对象,用于在多个Agent(如Web Worker)之间共享内存,并提供了原子操作来确保共享内存的安全性,避免竞争条件。

// 创建一个共享内存
const buffer = new SharedArrayBuffer(8);

// 创建一个32位有符号整数视图
const view = new Int32Array(buffer);

// 在不同的Agent中读写共享内存
view[0] = 42;
console.log(view[0]); // 输出 42

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值