for...of 循环含有辅助平面字符的字符串,输出让我感到困惑
代码
let count = 0,
s = "
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
let count = 0,
s = "
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
Javascript 采用 Unicode字符集,在 UTF-16 之前使用的是 UCS-2 编码,该编码方法使用2个字节表示字符(基本平面字符)。
UTF-16 编码发布后,UCS-2 被整合进 UTF-16,基本平面字符仍用2个字节,辅助平面字符使用4个字节表示。
因此,Javascript 的字符操作函数在处理4个字节的字符时,会当成两个双字节的字符处理,从而无法返回正确的结果。
"
for ... of
循环依赖于迭代器Iterator
的实现,和[..."
编码问题 for of es6新增的能正确识别
const a = s.charAt(0)
const b = s.charCodeAt(0)
JavaScript(ES6标准)处理占多个字节的汉字