此系列目的是通过简短的内容让读者迅速了解到一个 JS 的冷知识,如果想更进一步学习的话可以把文中的知识点深挖以下。
获取字符串的长度想必大家都是常用的:
- '1'.length // -> 1
但是在某些情况下,获取字符串长度可能并不如你所想的一样,比如说某些 emoji 甚至是汉字
- ''.length // ???
你可能会认为我这只用了一个 emoji,那么长度应该是 1,但是实际上输出的内容为 11~
笔者来简单的说下这是为什么。
字符是通过 Unicode 来表示的,JS 的字符编码是 UCS-2,这个编码规则是每两字节代表一个字符,然后 JS 内部获取字符串长度是通过计算字符长度来得到的。
Unicode 字符分为 17 组平面,第一个平面称为基本平面,Unicode码位范围为 U+0000 - U+FFFF,其他都叫做补充平面。对于 UCS-2 编码来说除了基础平面的字符长度为 1 以外,其他都为 2。
对于 '' 来说,它是由四个补充平面的码位及三个基础平面的码位组成,所以它的字符长度为 11。每个 emoji 都有它各自的编码信息,你可以在网上自行查询。
最后说个好玩的,对于 emoji 来说,我们可以对它进行结构,然后神奇的事情又发生了:
总结
文章简短,所以知识就是带过,毕竟大部分冷知识脑子里有个印象即可,如果你有兴趣继续学习,可以去了解以下知识点:
网站标题:99%开发者都不知道的JS冷知识系列(一)
本文来源:http://www.csdahua.cn/qtweb/news8/425708.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网