Javascript codePointAt和charCodeAt之间的差异
JavaScript中的Javascript codePointAt和charCodeAt之间的差异,javascript,string,codepoint,Javascript,String,Codepoint,JavaScript中的String.prototype.codePointAt()和String.prototype.charCodeAt()之间有什么区别 'A'.codePointAt(); // 65 'A'.charCodeAt(); // 65 发件人: 方法返回一个介于0和65535之间的整数,表示给定索引处的UTF-16代码单元(UTF-16代码单元与可在单个UTF-16代码单元中表示的代码点的Unicode代码点匹配,但也可能是不可在单个UTF-16代码单元中表示的代码点的
String.prototype.codePointAt()和String.prototype.charCodeAt()之间有什么区别
'A'.codePointAt(); // 65
'A'.charCodeAt(); // 65
发件人:
方法返回一个介于0和65535之间的整数,表示给定索引处的UTF-16代码单元(UTF-16代码单元与可在单个UTF-16代码单元中表示的代码点的Unicode代码点匹配,但也可能是不可在单个UTF-16代码单元中表示的代码点的代理项对的第一个代码单元,例如Unicode代码点>0x10000)。如果需要整个代码点值,请使用codePointAt()
charCodeAt()是UTF-16,codePointAt()是Unicode。
从这个url中,您可以获得差异,它们的函数几乎相同,但在返回和非法参数上存在一些差异要为ToxicTakes的答案添加一些差异,下面是另一个帮助您了解差异的示例:
”-第一段。再加上,许多unicode表都显示十六进制值,例如U+00A0。由于codePointAt
返回一个int,如果手动查找unicode表,您可能需要调用.toString(16)
将其转换为十六进制。很好的示例,正是我要查找的!几个问题:(I)如果codePointAt(0)
捕获了“整个”代码点,您知道为什么codePointAt(1)
会返回一个值吗?(ii)您知道如何toLowerCase()
vstolocallowercase()
适合这里?像您答案中的字符集有小写/大写吗?我想这是因为它仍然由16位索引。因此索引是由String.prototype.charAt
和String.prototype.charCodeAt
解释的相同索引。所以在索引1,第16位,没有at索引范围[1,2]因此,它变成了断开的字符“\udfb7”(“�")