前言:
如今各位老铁们对“python 运行js codepointat”可能比较看重,你们都需要知道一些“python 运行js codepointat”的相关资讯。那么小编在网摘上搜集了一些对于“python 运行js codepointat””的相关资讯,希望看官们能喜欢,朋友们一起来学习一下吧!codePointAt和charCodeAt区别在哪呢?
我们通过代码试一下
'䪟'.charCodeAt(0) // 4a9f '䪟'.codePointAt(0) // 4a9f
我们发现都一样额 我们去看下文档解释
The codePointAt() method returns a non-negative integer that is the Unicode code point value.
The charCodeAt() method returns an integer between 0 and 65535 representing the UTF-16 code unit at the given index
在这里出现了65535 我们去看下65525十六进制ffff
那就是说在unicode中0000-ffff我们可以用charCodeAt 但是超出了就不行
因为我们的’䪟’的十六进制4a4f在ffff之间所以这两个没区别
那我们换一个在Unicode中超出ffff的试下(所谓超出ffff就是要用四个字节表示 因为JS采取的是UTF-16储存 所以一般都是两个字节储存 但是一旦超过ffff后就需要4个字节储存。因为十六进制就变成五位了。对于这种4个字节的字符,JavaScript 不能正确处理 所有ES6有了codePointAt)
''.charCodeAt(0) // 55362 ''.codePointAt(0) // 134071 ''.codePointAt(0).toString(16) // 20bb7
因为’’在unicode中16进制超过了ffff 所以我们用charCodeAt就返回错误答案
这时候只能用codePointAt才能正确返回10进制
这就是为什么更新了codePointAt和fromCodePoint