当前位置: 首页 > 科技观察

99%开发者都不知道的JS冷知识系列(一)

时间:2023-03-12 17:52:15 科技观察

本系列旨在通过简短的内容,让读者快速了解一个JS冷知识。如果想了解更多,可以在下面的文章Dig中加深知识。获取字符串的长度想必大家都很常用:'1'.length//->1但是在某些情况下,获取字符串的长度可能不是你想的那样,比如一些emoji甚至是汉字'👨?👩?👧?👦'.length//???你可能认为我只用了一个表情符号,所以长度应该是1,但实际输出是11~笔者会简单解释一下这是为什么。字符用Unicode表示,JS的字符编码是UCS-2。这个编码规则是每两个字节代表一个字符,然后JS内部通过计算字符长度得到字符串长度。Unicode字符分为17组平面。第一个平面称为基本平面。Unicode码位范围为U+0000-U+FFFF,其他称为增补位面。对于UCS-2编码,除了基本平面的字符长度为1外,其他均为2。对于'👨?👩?👧?👦',它由四个补充组成平面码点和三个基本平面码点,所以它的字符长度是11。每个表情符号都有自己的编码信息,你可以自己上网查。最后说个好玩的,对于emoji,我们可以构造一下,然后神奇的事情又发生了:总结文章很短,所以知识就拿来了,毕竟大部分冷知识只是印象头脑,如果你有兴趣继续学习,可以了解一下以下知识点:Unicode编码有哪些种类?有关表情符号编码的信息