最近在写javascript的时候遇到了一个字符串比较的问题,我无法理解。
我从完全相同的 Url 创建了两个字符串,当我比较它们时,它返回 false,但在重新分配相同的字符串后,比较返回 true。
这是我的例子:
var str1 = "http://google.com/";
var str2 = "http://google.com/";
var eq = str1 == str2;
alert(eq); //print false
str1 = "http://google.com/";
str2 = "http://google.com/";
eq = str1 == str2;
alert(eq); //print true
我也在 C# 中编写了相同的代码,结果是相同的,为什么会发生这种情况,任何帮助将不胜感激。
最佳答案
在 com
和 /
之间的第二个字符串中有一个不可见的字符,您可以使用此 foreach 循环来验证:
foreach(var c in str2)
Console.WriteLine(c);
打印
h
t
t
p
:
/
/
g
o
o
g
l
e
.
c
o
m
/
这就是它返回 false 的原因。顺便说一句,我只是复制/粘贴你的代码,当我手动编写它时,它不会发生。
关于Javascript - URL 的奇怪字符串比较行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26378276/