日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
99%開發(fā)者都不知道的JS冷知識系列(一)

此系列目的是通過簡短的內(nèi)容讓讀者迅速了解到一個 JS 的冷知識,如果想更進一步學習的話可以把文中的知識點深挖以下。

獲取字符串的長度想必大家都是常用的:

 
 
 
 
  1. '1'.length  // -> 1 

但是在某些情況下,獲取字符串長度可能并不如你所想的一樣,比如說某些 emoji 甚至是漢字

 
 
 
 
  1. '???'.length // ??? 

你可能會認為我這只用了一個 emoji,那么長度應該是 1,但是實際上輸出的內(nèi)容為 11~

筆者來簡單的說下這是為什么。

字符是通過 Unicode 來表示的,JS 的字符編碼是 UCS-2,這個編碼規(guī)則是每兩字節(jié)代表一個字符,然后 JS 內(nèi)部獲取字符串長度是通過計算字符長度來得到的。

Unicode 字符分為 17 組平面,第一個平面稱為基本平面,Unicode碼位范圍為 U+0000 - U+FFFF,其他都叫做補充平面。對于 UCS-2 編碼來說除了基礎平面的字符長度為 1 以外,其他都為 2。

對于 '???' 來說,它是由四個補充平面的碼位及三個基礎平面的碼位組成,所以它的字符長度為 11。每個 emoji 都有它各自的編碼信息,你可以在網(wǎng)上自行查詢。

最后說個好玩的,對于 emoji 來說,我們可以對它進行結(jié)構,然后神奇的事情又發(fā)生了:

總結(jié)

文章簡短,所以知識就是帶過,畢竟大部分冷知識腦子里有個印象即可,如果你有興趣繼續(xù)學習,可以去了解以下知識點:

  • 字符編碼分為哪幾種
  • Unicode 編碼相關
  • emoji 編碼信息

標題名稱:99%開發(fā)者都不知道的JS冷知識系列(一)
當前地址:http://www.dlmjj.cn/article/djhhhpe.html