为什么"我"不等于"我"?

Orh*_*ral 0 javascript character

在谷歌浏览器的javascript控制台中键入以下代码:

"i" == "i?"
Run Code Online (Sandbox Code Playgroud)

并意识到它返回错误.但是它们都有相同的字符代码(105).

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

评论后,我意识到第二个我有2个字符,但第二个字符是由以下代码:

 "?".toLowerCase() // outputs i?
Run Code Online (Sandbox Code Playgroud)

"?".length // returns 1
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*lly 8

console.log("i".length, "i?".length)
> 1 2
Run Code Online (Sandbox Code Playgroud)

第二个字符串有一个额外的字符.结果是false两个字符串不一样.

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

̇ combining dot above 01407 775 0x307 ̇


Poi*_*nty 5

右侧字符串有两个字符:a i和之后的"组合波浪号".您可以通过仔细查看问题的标题来判断!