全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2024-02-05_ES6的一些高级技巧

您的位置:首页 >> 新闻 >> 行业资讯

ES6的一些高级技巧 引言 ES6(ECMAScript 2015)引入了许多新的功能和语法,其中一些功能可能相对较冷门,但非常实用。本文将介绍一些这样的高级技巧,包括 Object.entries() Object.fromEntries() Symbol类型和Symbol属性 WeakMap和WeakSet Promise.allSettled() BigInt Array.of Array.from .at和flat 1. Object.entries()和Object.fromEntries() Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组。Object.fromEntries()方法将键值对列表转换为一个对象。当使用Object.entries()时,可以传入一个对象作为参数。这个对象可以是任何具有可枚举属性的对象。例如: constobj={a:1,b:2,c:3 constentries=Object.entries(obj); console.log(entries);//[["a",1],["b",2],["c",3]] 在这个例子中,我们将一个包含三个属性的对象传递给Object.entries()方法,并将返回的结果存储在entries变量中。entries变量现在是一个包含键值对数组的数组。 同样地,当使用Object.fromEntries()时,可以传入一个键值对数组作为参数。这个数组中的每个元素都是一个包含键和值的数组。例如: constentries=[["a",1],["b",2],["c",3]]; constobj=Object.fromEntries(entries); console.log(obj);//{a:1,b:2,c:3} 在这个例子中,我们将一个包含三个键值对的数组传递给Object.fromEntries()方法,并将返回的结果存储在obj变量中。obj变量现在是一个由键值对组成的对象。 2. Symbol类型和Symbol属性 Symbol是一种新的原始数据类型,用于创建唯一的标识符。 Symbol属性是对象中使用Symbol作为键创建的属性。 constsym=Symbol('description'); constobj={ [sym]:'value' }; console.log(obj[sym]);//value 3. WeakMap和WeakSet WeakMap是一种集合类型,其中键必须是对象,并且在没有其他引用时会被垃圾回收。 WeakSet是一种集合类型,其中元素必须是对象,并且在没有其他引用时会被垃圾回收。 constwm=newWeakMap(); constobj= wm.set(obj,'value'); console.log(wm.get(obj));//value constws=newWeakSet(); ws.add(obj); console.log(ws.has(obj));//true 在这个例子中,我们创建了一个WeakMap和一个WeakSet实例。我们使用set()方法将obj对象添加到WeakMap中,并将值设置为'value'。然后,我们使用get()方法从WeakMap中获取值。类似地,我们使用add()方法将obj对象添加到WeakSet中,并使用has()方法检查集合中是否存在该对象。 4. Promise.allSettled() Promise.allSettled()方法返回一个在所有给定的promise已被解析或被拒绝后决议的promise,并带有一个对象数组,每个对象表示对应的promise结果。constpromises=[ Promise.resolve('resolved'), Promise.reject('rejected'), Promise.resolve('resolved') ]; Promise.allSettled(promises) .then(results={ console.log(results); }) .catch(error={ console.error(error); //输出结果: //[ //{status:'fulfilled',value:'resolved'}, //{status:'rejected',reason:'rejected'}, //{status:'fulfilled',value:'resolved'} //] 我们创建了一个包含三个promise的数组,并将其传递给Promise.allSettled()方法。然后,我们使用.then()方法处理返回的结果数组,或使用.catch()方法处理任何错误。 5. BigInt BigInt是一种新的原始数据类型,用于表示任意精度的整数。constbigIntValue=BigInt(Number.MAX_SAFE_INTEGER)+BigInt(1); console.log(bigIntValue);//9007199254740992n 6. Array.of、Array.from Array.of()方法创建一个具有可变数量参数的新数组实例。 Array.of方法用于创建一个由参数组成的新数组。它与Array构造函数不同之处在于,当参数只有一个且为数字时,Array.of会创建一个只包含该数字的数组,而不是创建指定长度的空数组。 Array.from()方法从类似数组或可迭代对象创建一个新的数组实例。 Array.from方法将类似数组或可迭代对象转换为真正的数组。它可以接收第二个参数来进行映射或筛选操作。 constarr1=Array.of(1,2,3); console.log(arr1);//[1,2,3] conststr='Hello'; constarr=Array.from(str); console.log(arr);//输出:['H','e','l','l','o'] constnums=[1,2,3,4,5]; constdoubled=Array.from(nums,num=num*2); console.log(doubled);//输出:[2,4,6,8,10] 7. .at和flat .at()方法返回指定索引处的元素。 .at方法用于获取数组指定索引位置的元素,支持负数索引。 flat()方法将嵌套的数组扁平化为一个新的数组。 flat方法用于将多维数组扁平化为一维数组,可以指定扁平化的层数。 constarr3=[1,2,3,4,5]; console.log(arr3.at(2));//3 constarr4=[1,[2,[3]]]; console.log(arr4.flat());//[1,2,[3]] 总结 ES6引入了许多实用但相对较冷门的高级技巧。Object.entries()和Object.fromEntries()可以方便地在对象和键值对之间进行转换。Symbol类型和Symbol属性可以创建唯一的标识符。 WeakMap和WeakSet提供了一种在没有其他引用时自动垃圾回收的集合类型。Promise.allSettled()可以处理多个promise并返回所有结果。BigInt允许表示任意精度的整数。Array.of、Array.from、.at和flat提供了更方便的数组操作方法。这些技巧可以帮助开发者更高效地编写代码。 阅读原文

上一篇:2023-05-28_ChatGPT能写长篇小说了,ETH提出RecurrentGPT实现交互式超长文本生成 下一篇:2021-06-27_华为诺亚加法网络再升级:精度提升,可以逼近任意函数

TAG标签:

15
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价