Unicode表示法
- 本身能正常识别的,加
{}
也能识别,花括号内的内容表示码点
parseInt('0061',16) // 十进制的97,97在ASCII码中对应a
console.log('\u0061') // a
console.log('\u{0061}') // a
console.log('\u{61}') // a
原型上方法
codePointAt(十进制)
- 字符串的长度是字符的长度,需要4个字节表示的字符,长度为2
- charCodeAt返回的也是码点
- 凡是超过oxffff的,用codePointAt更方便
console.log('\u{1f42a}'.length) // 2 🐪
// 该字符需要4个字节表示,分开打印时,每个都是乱码
console.log('\u{1f42a}'.charAt(0)) // �
console.log('\u{1f42a}'.charAt(1)) // �
- 注意:和charCodeAt一样
'🐪'.codePointAt(0) // 128042
'🐪'.charCodeAt(0) // 55357
'🐪'.charCodeAt(1) // 56362
(55357).toString('16') // "d83d"
(56362).toString('16') // "dc2a"
(128042).toString('16') // "1f42a"
console.log('\u{d83d}\u{dc2a}' ===