自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 前端
此系列目的是通過簡(jiǎn)短的內(nèi)容讓讀者迅速了解到一個(gè) JS 的冷知識(shí),如果想更進(jìn)一步學(xué)習(xí)的話可以把文中的知識(shí)點(diǎn)深挖以下。

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

[[336183]]

獲取字符串的長(zhǎng)度想必大家都是常用的:

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

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

  1. '👨‍👩‍👧‍👦'.length // ??? 

你可能會(huì)認(rèn)為我這只用了一個(gè) emoji,那么長(zhǎng)度應(yīng)該是 1,但是實(shí)際上輸出的內(nèi)容為 11~

筆者來簡(jiǎn)單的說下這是為什么。

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

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

對(duì)于 '👨‍👩‍👧‍👦' 來說,它是由四個(gè)補(bǔ)充平面的碼位及三個(gè)基礎(chǔ)平面的碼位組成,所以它的字符長(zhǎng)度為 11。每個(gè) emoji 都有它各自的編碼信息,你可以在網(wǎng)上自行查詢。

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

總結(jié)

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

  • 字符編碼分為哪幾種
  • Unicode 編碼相關(guān)
  • emoji 編碼信息

 

責(zé)任編輯:趙寧寧 來源: 前端真好玩
相關(guān)推薦

2023-01-13 16:48:48

前端開發(fā)JavaScript

2020-07-29 09:53:09

VSCode編碼工具插件

2018-10-17 14:50:08

2021-07-22 09:28:35

DockerLinux命令

2020-12-21 09:00:04

MySQL緩存SQL

2022-06-19 14:38:55

Python

2022-10-31 18:38:24

MySQL數(shù)據(jù)訂單表

2019-08-09 14:20:46

微信軟件手機(jī)

2011-02-18 09:05:25

WebFirebugCSS

2022-03-28 18:48:42

人工智能AI

2020-12-21 09:44:53

MySQL查詢緩存數(shù)據(jù)庫

2015-04-13 13:51:44

GMGC

2021-09-24 14:20:25

開發(fā)技能工具

2020-05-18 09:33:27

前端開發(fā)工具

2021-12-29 11:38:59

JS前端沙箱

2022-01-05 08:01:48

前端技術(shù)編程

2021-11-16 08:51:29

Node JavaScript變量類型

2025-02-18 00:05:00

2021-11-12 10:05:19

跳表BAT面試

2024-10-22 09:03:35

前端signalAPI
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)