codePointAt
str.codePointAt(pos)
返回一个Unicode
编码点值的非负整数
'😀'.codePointAt(0) // 128512
charCodeAt
str.charCodeAt(index)
index
是一个大于等于0,小于字符串长度的整数,如果不是一个数值,则默认为0- 若
index
超出范围,返回NaN
返回0~65535
之间的整数,表示给定索引处的UTF-16编码单元
'😀'.charCodeAt(0) // 55357
'😀'.charCodeAt(1) // 56832
'😀'.charCodeAt(2) // NaN
💡 拓展
UTF-16编码单元
- 匹配一个能用UTF-16编码单元表示的Unicode码点(值小于
0xFFFFF
) 如果Unicode码点不能用一个UTF-16编码单元表示,
charCodeAt
返回的则是这个码点代理对的第一个编码单元;若想获取整个码点的值,使用codePointAt
代理对 Surrogate Pair
UTF-16中用于拓展字符而使用的编码方式
-
fromCodePoint
返回使用户指定的代码点序列创建的字符串
- 如果在指定位置没有元素返回则返回
undefined
- 如果在索引处开始没有
UTF-16
代理对,将直接返回在那个索引处的编码单元String.fromCodePoint(128512) // '😀'
fromCharCode
String.fromCharCode(num1, [,…[, numN])
- num1, …, numN 一系列UTF-16编码单元的数字(0~65535)
返回由指定的UTF-16代码单元序列创建的字符串
String.fromCharCode(55357, 56832) // '😀'