|
|
|
|
|
在JavaScript編程中輸出emoji表情符號(hào),這是一個(gè)很有趣的事情。如果你對(duì)此還不了解,那么有興趣可以看看,其實(shí)也不是很高深的東西,代碼寫起來也挺簡(jiǎn)單的,都是平時(shí)自己熟悉的語法。本文將通過實(shí)例演示如何在JavaScript編程中輸出emoji表情符號(hào)。
表情符號(hào)的一個(gè)有趣之處在于,你可以將一些單個(gè)emoji表情符號(hào)組合成一個(gè)整體。同樣地,你也可以將復(fù)雜的emoji表情符號(hào)拆分為簡(jiǎn)單的emoji表情符號(hào)。而這些,都可以用JavaScript輕松實(shí)現(xiàn)。
表情符號(hào)也是一個(gè)字符串。它不是一種新的數(shù)據(jù)類型,它們只是一個(gè)字符串。
而且,我們知道在計(jì)算機(jī)科學(xué)中,每個(gè)字符都對(duì)應(yīng)一個(gè) Unicode 代碼。這是一個(gè)例子:
我們可以從他們的官方網(wǎng)站獲取完整的 Unicode 列表。
https://home.unicode.org/
同時(shí),我們也知道 Unicode 碼位是有限的,我們不可能為所有的 emoji 分配一個(gè)獨(dú)立的 Unicode 編碼。所以一些表情符號(hào)是由基本的表情符號(hào)加上表情符號(hào)修飾符組成的,例如:
即使使用表情符號(hào)修飾符,也不夠。例如,如果我們想用表情符號(hào)表達(dá)一對(duì)情侶,我們應(yīng)該怎么做?
一種解決方案是直接在 Unicode 中添加一個(gè)表示一對(duì)的符號(hào),但是這種解決方案占用了太多的 Unicode 資源。為了方便,人們發(fā)明了 Emoji ZWJ(ZERO WIDTH JOINER) 序列,它允許我們將不同的 emoji 組合在一起。
比如男人加電腦就是男程序員,女人加電腦就是女程序員。
在拼接emoji的時(shí)候,我們需要用到一個(gè)特殊的連接器,即 U+200D ZERO WIDTH JOINER(ZWJ)。
所以我們可以知道一件事:很多 emoji 不是一個(gè)單一的字符,而是由其他 emoji 和連接器拼接在一起的。
好吧,現(xiàn)在讓我們討論標(biāo)題中的問題。
????????也是一個(gè)表情符號(hào)序列,由女人??、男人??、愛?和嘴巴??組成。
其組成結(jié)構(gòu)如下:
這時(shí)候,當(dāng)我們?cè)谶@個(gè) emoji 上使用擴(kuò)展運(yùn)算符時(shí),這個(gè) emoji 會(huì)被分解成 8 個(gè)獨(dú)立的 Unicode 字符,其中 4 個(gè)也是 emoji,最后看起來就像我們的標(biāo)題所代表的那樣。
????????
不同于普通的字母和數(shù)字,鍵盤上沒有對(duì)應(yīng)表情符號(hào)的按鍵。所以你不能直接通過鍵盤輸入表情符號(hào)。如果現(xiàn)在你想現(xiàn)在輸入這四個(gè)表情符號(hào),你要怎么做呢?
在 JavaScript 中,我們可以將 Unicode 轉(zhuǎn)換為字符String.fromCodePoint()
。靜態(tài)String.fromCodePoint()
方法返回使用指定的代碼點(diǎn)序列創(chuàng)建的字符串。
它們?cè)诳刂婆_(tái)中打印后,我們就可以將它們復(fù)制并粘貼到其他地方。
需要注意兩emoji表情符號(hào)合并的寫法。
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js-emoji</title>
</head>
<body>
<script type="text/javascript">
document.write(String.fromCodePoint("0x1F469")); //表情1
document.write(String.fromCodePoint("0x1F4BB")); //表情2
document.write(String.fromCodePoint('0x1F469', '0x200D', '0x1F4BB')); //表情1+表情2
</script>
</body>
</html>
但你也應(yīng)該注意到一件事:相同的表情符號(hào)在不同的操作系統(tǒng)/應(yīng)用程序中可能有不同的表示。
本文介紹了如何在JavaScript編程中輸出emoji表情符號(hào)的方法,其實(shí)就是使用了表情符號(hào)的 Unicode 編碼,然后通過轉(zhuǎn)換函數(shù)把它轉(zhuǎn)換成表情符號(hào)圖標(biāo)輸出,我們要做的,就是首先去獲得這個(gè)表情符號(hào)的 Unicode 編碼,而這個(gè)編碼是可以在本文中提供的 Unicode 官網(wǎng)里找到的。