Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript codePointAt和charCodeAt之间的差异_Javascript_String_Codepoint - Fatal编程技术网

Javascript codePointAt和charCodeAt之间的差异

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代码单元中表示的代码点的

JavaScript中的
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()
vs
tolocallowercase()
适合这里?像您答案中的字符集有小写/大写吗?我想这是因为它仍然由16位索引。因此索引是由
String.prototype.charAt
String.prototype.charCodeAt
解释的相同索引。所以在索引1,第16位,没有at索引范围[1,2]因此,它变成了断开的字符“\udfb7”(“�")