日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
展開(kāi)操作符:一家人就這么被拆散了

想必大家在業(yè)務(wù)中應(yīng)該經(jīng)常使用展開(kāi)操作符(Spread syntax),比如展開(kāi)數(shù)組:

function sum(x, y, z) {
return x + y + z;
}

const numbers = [1, 2, 3];

// 6
console.log(sum(...numbers));

克隆對(duì)象:

const clone = { ...obj };

但你有沒(méi)有見(jiàn)過(guò)如下操作:

本文就來(lái)聊聊上述情況的成因。

展開(kāi)操作符對(duì)字符串的作用

iterable是ES2015增加的類型,展開(kāi)操作符可以作用于iterable,將其展開(kāi)為0到多個(gè)參數(shù)。Array、String這些常見(jiàn)的類型都屬于iterable。

iterable可以使用for..of語(yǔ)法遍歷,比如:

for (let i of 'abc') {
console.log(i)
}
// a
// b
// c

Array屬于iterable很好理解,但是為什么String也屬于iterable呢?

這是因?yàn)樵贓S2015之前,String基本實(shí)現(xiàn)了Array用于遍歷的所有要素,比如:

  • 擁有.length屬性
  • 可以通過(guò)下標(biāo)訪問(wèn)索引位置的字符

我們不討論這種實(shí)現(xiàn)是否正確,只是想說(shuō):用于遍歷時(shí),String與Array體驗(yàn)類似。

所以到了ES2015,當(dāng)Array作為iterable支持for...of遍歷時(shí),從體驗(yàn)上來(lái)說(shuō),String也需要支持同樣的語(yǔ)法。

用展開(kāi)操作符展開(kāi)「一家三口」的結(jié)果:

用for...of遍歷,可以看到對(duì)應(yīng)的Unicode字符:

那么「一家三口」作為一個(gè)emoji,有什么特殊的呢?

Emoji Sequence

這種由多個(gè)emoji組合成的emoji被稱為Emoji Sequence,他利用了文字可以組合形成這一特性。

比如,泰語(yǔ)就是可以組合形成的文字。

泰語(yǔ)里的薩瓦迪卡(你好),寫(xiě)為「??????????」。你會(huì)發(fā)現(xiàn),在字符頭上有個(gè)「帽子」。

此外,泰語(yǔ)中的一些字符還有「鞋子」,比如「??」。

又或者又有「帽子」又有「鞋子」,比如:「???」。

在泰語(yǔ)輸入法中,用戶依次輸入「基本字符」、「帽子」、「鞋子」,組合成需要的字符后再輸入「結(jié)束字符」,就拼湊成一個(gè)完整字符。

回到我們的「一家三口」,你會(huì)發(fā)現(xiàn),展開(kāi)后的第1、3項(xiàng)為「零寬字符」(Zero Width Joiner,簡(jiǎn)稱zwj):

從上述for...of遍歷的結(jié)果可知,這個(gè)零寬字符為\u200D。他通常用于排版。但Emoji Sequence把他拿去作為emoji之間的膠水。

換言之,你可以用\u200D將多個(gè)emoji組合成一個(gè)Emoji Sequence。

比如,「爸爸」,「媽媽」,「小男孩」可以組合成一家三口:

當(dāng)然,「小女孩」也可以:

「小姑娘」與「學(xué)士帽」組合成「戴學(xué)士帽的小姑娘」:

總結(jié)

當(dāng)了解組合方法后,你可以用現(xiàn)有emoji組合成全新的Emoji Sequence。

兩個(gè)爸爸帶孩子的家庭,兩個(gè)媽媽帶孩子的家庭,這都是可以嘗試的嘛~


當(dāng)前題目:展開(kāi)操作符:一家人就這么被拆散了
URL分享:http://m.5511xx.com/article/dhisphs.html