Javascript-URL的奇怪字符串比较行为
本文关键字:比较 字符串 Javascript-URL | 更新日期: 2023-09-27 18:26:37
最近我在编写无法理解的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的原因。顺便说一句,我只是复制/粘贴你的代码,当我手动编写它时,它不会发生。