Javascript JS字符串不等于它本身有什么原因吗?(见图)

Javascript JS字符串不等于它本身有什么原因吗?(见图),javascript,string,Javascript,String,有什么原因可以解释为什么一个字符串不等于它自己吗?我正在处理大量的字符串,有些字符串最终不等于它们自己 这是一张显示我所说内容的图片 有什么想法吗 决议: 有一个回车符(\r)附加到其中一个字符串的末尾。我使用String.length查看每个字符串的长度,它们不同(5和6)。然后,我使用string.charAt查看了字符串。在Chrome中,这显示了一个空字符串(“”)。但是,空字符串不是错误值。我在FireFox中试过这个,它显示了回车。可能是其中一个字符是ascii等效字符的UTF-8

有什么原因可以解释为什么一个字符串不等于它自己吗?我正在处理大量的字符串,有些字符串最终不等于它们自己

这是一张显示我所说内容的图片

有什么想法吗

决议:
有一个回车符(\r)附加到其中一个字符串的末尾。我使用String.length查看每个字符串的长度,它们不同(5和6)。然后,我使用string.charAt查看了字符串。在Chrome中,这显示了一个空字符串(“”)。但是,空字符串不是错误值。我在FireFox中试过这个,它显示了回车。

可能是其中一个字符是ascii等效字符的UTF-8表示

下面是一个音译jquery插件:


如果一个字符串包含一些不可读的字符,而另一个字符串不包含这些字符,那么在任何语言中都可能有一个控制序列,比如BOM。

,即使人类认为它们相等,它们也会不同


尝试打印它们的长度并逐字符打印它们

很可能是将字符串值类型与字符串进行比较

解决方案:要么使用string.valueOf()要么使用double equals而不是triple,让javascript将string对象强制为string值

从我的控制台 a=新字符串(“asdf”); b=“asdf”; a===b;//假的 a==b;//真的
a、 valueOf()==b.valueOf();//true

==也给出false。看到图像了吗?从图像可以看出,它不是一个字符串对象。下面是字符串对象的外观:
“foo”==newstring(“foo”)//true
结果是其中一个字符串的末尾附加了一个空字符串。谢谢如果使用if(strA.indexOf(strB)!=-1),会发生什么情况?
RGD.symbol
如何突然变成
rgdMap['snail'].symbol
?你确定你在比较正确的值吗?@adeneo你在哪里看到
RGD.symbol
任何地方?上一行控制台被切断显然是
rdgMap['snai1']