为什么"i〃;不等于“;i̇”;

Why "i" is not equals to "i̇"?

本文关键字:不等于 为什么 quot      更新时间:2023-09-26

在google chrome的javascript控制台中键入以下代码:

"i" == "i̇"

并意识到它返回false。但它们都有相同的字符代码(105)。

这是如何以及为什么可能的?

在评论之后,我意识到第二个I有2个字符,但第二个字符是由以下代码组成的:

 "İ".toLowerCase() // outputs i̇

还有

"İ".length // returns 1

javascript.toLowerCase()如何以及为什么可以计算字符长度?

console.log("i".length, "i̇".length)
> 1 2

第二个字符串有一个额外的字符。结果是false,因为这两个字符串不相同。

如果我们使用charCodeAt(),我们可以看到这个额外的字符是Unciode符号775,称为上方的组合点。

̇775 0x307 ̇ i 上方的组合点

右侧字符串有两个字符:CCD_8和后面的"组合波浪号"。你只要仔细看问题的标题就知道了!