String.fromCharCode()方法可以实现把码点转成字符打印,比如String.fromCharCode(0x0061),控制台会输出a,但是fromCharCode只能对不大于0xFFFF的码点才有效,如果我们要打印一个emoji表情笑脸?,首先我们知道这个笑脸的Unicode编码是1f601,但是很明显超出了FFFF,如果使用fromCharCode并不会输出我们想要的笑脸
String.fromCharCode(0x1f601)
//""
你会发现输出的是一个方框,
String.fromCharCode(0xf601)
//""
你会发现使用fromCharCode输出0x1f601和输出0xf601结果是一样的,这是因为1f601超出了ffff,所以输出结果把1f601中的高位1截断了,实际输出的还是f601。
所以为了解决不能大于0xffff的问题,es6出现了fromCodePoint。
String.fromCodePoint(0x1f601)
//"?"
终于出现了我们想要的结果,fromCodePoint是可以传递多个参数的,在处理过程中会对多个参数进行拼接处理。
String.fromCodePoint(0x1f601,0x1f601,0x1f601)
//"???"
标记几个不能直接使用Unicode的转写的,只能使用转义形式。比如反斜杠 前面要加上转义符号才可以,\u005c
- U+005C:反斜杠(reverse solidus)
- U+000D:回车(carriage return)
- U+2028:行分隔符(line separator)
- U+2029:段分隔符(paragraph separator)
- U+000A:换行符(line feed)

本文深入探讨了ES6中String.fromCodePoint方法的使用,对比了与String.fromCharCode的区别,尤其是在处理超过0xFFFF码点的Unicode字符,如emoji表情时的优势。文章还列举了几种特殊Unicode字符的转写方式。
697

被折叠的 条评论
为什么被折叠?



