99% 開發者都不知道的 JS 冷知識系列(一)

此係列目的是經過簡短的內容讓讀者迅速瞭解到一個 JS 的冷知識,若是想更進一步學習的話能夠把文中的知識點深挖如下。前端

做者:大家的愷哥來源:前端真好玩|2020-08-04 09:57 收藏 分享
此係列目的是經過簡短的內容讓讀者迅速瞭解到一個 JS 的冷知識,若是想更進一步學習的話能夠把文中的知識點深挖如下。數組

99% 開發者都不知道的 JS 冷知識系列(一)

獲取字符串的長度想必你們都是經常使用的:ide

'1'.length  // -> 1

可是在某些狀況下,獲取字符串長度可能並不如你所想的同樣,好比說某些 emoji 甚至是漢字學習

'.length // ???

你可能會認爲我這隻用了一個 emoji,那麼長度應該是 1,可是實際上輸出的內容爲 11~編碼

筆者來簡單的說下這是爲何。code

字符是經過 Unicode 來表示的,JS 的字符編碼是 UCS-2,這個編碼規則是每兩字節表明一個字符,而後 JS 內部獲取字符串長度是經過計算字符長度來獲得的。blog

Unicode 字符分爲 17 組平面,第一個平面稱爲基本平面,Unicode碼位範圍爲 U+0000 - U+FFFF,其餘都叫作補充平面。對於 UCS-2 編碼來講除了基礎平面的字符長度爲 1 之外,其餘都爲 2。ip

對於 來講,它是由四個補充平面的碼位及三個基礎平面的碼位組成,因此它的字符長度爲 11。每一個 emoji 都有它各自的編碼信息,你能夠在網上自行查詢。開發

最後說個好玩的,對於 emoji 來講,咱們能夠對它進行結構,而後神奇的事情又發生了:
99% 開發者都不知道的 JS 冷知識系列(一)字符串

總結

文章簡短,因此知識就是帶過,畢竟大部分冷知識腦子裏有個印象便可,若是你有興趣繼續學習,能夠去了解如下知識點:

  • 字符編碼分爲哪幾種
  • Unicode 編碼相關
  • emoji 編碼信息
    【編輯推薦】
  1. 請中止在JavaScript中使用類,你將成爲一名更好的開發人員
  2. 一個有意思的方案:不借助後臺和 JS ,只用 CSS 讓一個列表編號倒序,你會怎麼作?
  3. 當前比較流行開發語言詳解之Java篇
  4. 前端登陸,這一篇就夠了
  5. 5 個 JS 數組技巧可提升你的開發技能【責任編輯:趙寧寧 TEL:(010)68476606】
相關文章
相關標籤/搜索