您现在的位置是:亿华云 > 系统运维
展开操作符:一家人就这么被拆散了
亿华云2025-10-04 01:16:16【系统运维】8人已围观
简介大家好,我卡颂。想必大家在业务中应该经常使用展开操作符(Spread syntax),比如展开数组:function sum(x, y, z) {return x + y + z;}const num
大家好,展开我卡颂。操作拆散
想必大家在业务中应该经常使用展开操作符(Spread syntax),人被比如展开数组:
function sum(x,展开 y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
// 6
console.log(sum(...numbers));克隆对象:
const clone = { ...obj };但你有没有见过如下操作:
本文就来聊聊上述情况的成因。
展开操作符对字符串的操作拆散作用iterable是ES2015增加的类型,展开操作符可以作用于iterable,人被将其展开为0到多个参数。展开Array、操作拆散String这些常见的人被类型都属于iterable。
iterable可以使用for..of语法遍历,展开比如:
for (let i of abc) {
console.log(i)
}
// a
// b
// cArray属于iterable很好理解,操作拆散但是人被为什么String也属于iterable呢?
这是因为在ES2015之前,String基本实现了Array用于遍历的展开所有要素,比如:
拥有.length属性可以通过下标访问索引位置的操作拆散字符我们不讨论这种实现是否正确,只是人被想说:用于遍历时,String与Array体验类似。
所以到了ES2015,当Array作为iterable支持for...of遍历时,从体验上来说,String也需要支持同样的亿华云语法。
用展开操作符展开「一家三口」的结果:
用for...of遍历,可以看到对应的Unicode字符:
那么「一家三口」作为一个emoji,有什么特殊的呢?
Emoji Sequence这种由多个emoji组合成的emoji被称为Emoji Sequence,他利用了文字可以组合形成这一特性。
比如,泰语就是可以组合形成的文字。
泰语里的萨瓦迪卡(你好),写为「สวัสดีครับ」。你会发现,在字符头上有个「帽子」。
此外,泰语中的一些字符还有「鞋子」,比如「ผู」。
又或者又有「帽子」又有「鞋子」,比如:「ผู้」。
在泰语输入法中,用户依次输入「基本字符」、「帽子」、「鞋子」,组合成需要的字符后再输入「结束字符」,站群服务器就拼凑成一个完整字符。
回到我们的「一家三口」,你会发现,展开后的第1、3项为「零宽字符」(Zero Width Joiner,简称zwj):
从上述for...of遍历的结果可知,这个零宽字符为\u200D。他通常用于排版。但Emoji Sequence把他拿去作为emoji之间的胶水。
换言之,你可以用\u200D将多个emoji组合成一个Emoji Sequence。
比如,「爸爸」,「妈妈」,「小男孩」可以组合成一家三口:
当然,「小女孩」也可以:
「小姑娘」与「学士帽」组合成「戴学士帽的小姑娘」:
当了解组合方法后,你可以用现有emoji组合成全新的Emoji Sequence。
两个爸爸带孩子的家庭,两个妈妈带孩子的家庭,这都是可以尝试的嘛~
高防服务器很赞哦!(19688)
相关文章
- 4、待所有域名查询结束后可在右侧点击导出结果,即可以excel的文件方式将查询到的结果导出。
- 「冰墩墩」代码,开源了!
- Oracle 数据库是真的没落了
- 保姆级教程!2 万字 + 30 张图搞懂 MySQL 是怎么加行级锁的?
- 为什么大家都选优质域名?到底存在着什么好处?
- 你还不知道怎么做数据库读写分离么,用这个中间件让你性能提10倍
- 如何构建企业内的 TiDB 自运维体系
- 万亿级数据秒级实时分析,小红书OLAP引擎的进化之路
- 用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
- Oracle数据库如何获取当前自然周,当前周的起始和结束日期