js中用两个字节表示一个字符
es6对超出\uFFFF范围的字符,进行了支持
console.log("\u{20BB7}")
var s1="??"
var s2="中"
console.log("?? length",s1.length)
console.log("中 length",s2.length)
console.log(s2.charAt(0))
//\uD842十六进制
console.log(s1.charAt(0))------乱码
//\uDFB7
console.log(s1.charAt(1))------乱码
//55362十进制
console.log(s1.charCodeAt(0))
//57271
console.log(s1.charCodeAt(1))
------------------------------------
var s3="??a"
console.log("length",s3.length)
//20bb7
console.log(s3.codePointAt(0).toString(16))
//uDFB7
console.log(s3.codePointAt(1).toString(16))
console.log(s3.codePointAt(2).toString(16))
-------------------------
for(let ch of s3){
console.log("--------",ch.codePointAt(0).toString(16))
}
ES5:String.fromCharCode("0x4e2d")
ES6:String.fromCodePoinnt("0x20BB7")
原文:https://www.cnblogs.com/lceihen/p/14442677.html