坚果大叔 坚果大叔
  • 首页
  • 闲言碎语
  • 技术
  • 生活
  • 记录
  • 朋友
  • 热点新闻
  • 常用代码
  • 工具箱
  • 关于
首页 › 技术 › ES6入门之字符串的扩展

ES6入门之字符串的扩展

坚果大叔
2019-03-24 10:08:15技术阅读 1,655

1. 字符的 Unicode 表示法

Javascript 中允许采用 \uxxxx的形式表示一个字符,其中xxxx表示字符的Unicode码点。如下

"\u0061"

这种 表示有区间 只能在 0000 ~ FFFF之间,如果超出则需要用双字节的的形式表示

"\u20BB7\uDFB1"

在ES6中,对字符串的写法做出了改变。改为将码点放入大括号中,就能正确读取该字符,如下:

"\u{20BB7}" // 吉

2. codePointAt()

Javascript内部,字符以 UTF-16的格式存储,每个字符固定为2个字节。对于需要4个字节储存的字符,JavaScript会认为它们是两个字符。如下:

var s = "吉"

s.length // 2
s.charAt(0) // ''
s.charAt(1) // ''
s.charCodeAt(0) // 55362
s.charCodeAt(1) // 57271

上面代码中汉字吉 需要4个字节存储,但是JavaScript不能正确处理,字符串长度误判为2,而且charAt 方法无法读取字符,charCodeAt 只能返回前面两个字节和后面两个字节的值,ES6 提供了 codePointAt 方法能够正确处理4个字节存储的字符,返回一个字符的码点,如下:
let s = '吉a';

s.codePointAt(0) // 134071
s.codePointAt(1) // 57271

codePointAt() 方法是测试一个字符由两个字节还是四个字节组成的最简单的方法

3. String.fromCodePoint()

ES5 提供了 String.fromCharCode 方法 用于从码点返回对应字符,但是不能识别32位的UTR-16字符,ES6提供了 Sring.fromCodePoint() 方法 可以识别大于32位的。如果有多个参数则将合并。如下:

String.fromCodePoint(0x20BB7)
// "
字符串
赞赏 赞(0)
本文系作者 @坚果大叔 原创发布在 坚果大叔。未经许可,禁止转载。
Python基础教程之数据类型和变量
上一篇
ES6入门之正则的扩展
下一篇
在小程序中查看
搜你想看的
聚合文章
又是周六的一天。
请阅读加群注意事项!
再见2017
国庆假期的一些照片~
闲言碎语
Memos
Nuxt3中piana持久化处理!
2025-06-22 18:45:45
315 0 1
npm install 出现 Error:EISDIR:illegal operation on a directory 的错误提示!
2025-03-31 19:02:11
886 0 0
iphone 利用 Scriptable 添加网上国网电费小组件
2025-01-06 20:40:20
7,099 2
在博客中加上memos记录展示。
2024-12-25 23:41:27
3,575 2
  • 0
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2025 坚果大叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 闲言碎语
  • 技术
  • 生活
  • 记录
  • 朋友
  • 热点新闻
  • 常用代码
  • 工具箱
  • 关于
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
320
文章
134
评论
372
喜欢