ES6入门之字符串的扩展

简介: ES6入门之字符串的扩展

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)
// "
相关文章
|
7月前
|
JSON 自然语言处理 JavaScript
ES6 字符串的扩展
ES6 字符串的扩展
|
自然语言处理 JavaScript 前端开发
ES6(字符串的扩展)
ES6(字符串的扩展)
100 0
|
网络架构
ES6学习(五)—数组的扩展
ES6学习(五)—数组的扩展
|
网络架构
ES6学习(六)—函数的扩展
ES6学习(六)—函数的扩展
|
网络架构
es6扩展运算符的学习使用
es6扩展运算符的学习使用
53 0
ES6模板字符串是什么,有什么优点
ES6模板字符串是什么,有什么优点
95 0
|
数据采集 存储 JavaScript
【ES6】字符串的拓展
【ES6】字符串的拓展
129 0
|
JavaScript 开发者 索引
es6字符串扩展
es6字符串扩展
|
JavaScript
ES6入门之数组的扩展
ES6入门之数组的扩展