JSFiddle - React, Tailwind, and code Playground

JavaScript

console.log('\uD800\uDC00'.charCodeAt(0));  //55296  
console.log('\uD800\uDC00'.charCodeAt(1));  //56320  
console.log('\uD800\uDC00'.codePointAt(0)); //65536  获取的是整个 surrogate pair 的码点
console.log('\uD800\uDC00'.codePointAt(1)); //56320  获取的是'\uDC00'的码点, 同charCodeAt()   
console.log('\uD800'.codePointAt(0));       //55296  获取的是'\uD800'的码点, 同charCodeAt()
 
    
//根据阮一峰老师的文章:"当我们遇到两个字节,发现它的码点在U+D800到U+DBFF之间,就可以断定,紧跟在后面的两个字节的码点,应该在U+DC00到U+DFFF之间,这四个字节必须放在一起解读。"
//所以,'\uD800\uDC00'应该两个码点一起解读,解读的结果就是65536
    
console.log('𠮷'.length);  //2
console.log('𠮷'.codePointAt(0));  //134071 
console.log('𠮷'.codePointAt(1));  //57271
    
//𠮷(ji)这个字,是由两个码点,四个字节组成的,所以它的length是2.两个码点一起解读,得到的结果就是134071
    
//最后一点,当获取这类需要两个码点一起解读组成一个字符的时候,如果获取高位的code point,它得到的会是整个字符的Unicode值,但如果获取低位的code point,它得到的依然是第二个码点的Unicode值.