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】
相关文章
相关标签/搜索