这段代码在IE8和Firefox6中的运行结果不同,求解
程序代码:
<html> <head></head> <body> Compare_02<BR /> <p>List1和List2做比较</p><BR /> Tape In Box Scratch List<BR /> <p> <textarea id="list01" cols="14" rows="15"></textarea> <textarea id="list02" cols="14" rows="15"></textarea><BR /><BR /> <a id="compare">Do Compare!</a><BR /> </p> <script> window.onload=initAll; function initAll(){ document.getElementById("compare").onclick=compare; } function compare(){ var bingo=[]; var arr_value01=document.getElementById("list01").value.split("\n"); var arr_value02=document.getElementById("list02").value.split("\n"); for(var i=0;i<arr_value01.length;i++){ for(var k=0;(arr_value01[i]!=arr_value02[k]) && k<arr_value02.length;k++){ document.write(arr_value01[i]+" || "+arr_value02[k]); document.write(" || "+typeof(arr_value01[i])+" "+typeof(arr_value02[k])+" "+(arr_value01[i]!=arr_value02[k])); document.write(" || i: "+i+" k: "+k+" || arr_value02.length:"+arr_value02.length+"<BR />"); } if(arr_value01[i]==arr_value02[k]){ document.write("arr_value01["+i+"]: "+arr_value01[i]+" || arr_value02["+k+"]: "+arr_value02[k]+"<BR />"); bingo.push(arr_value02[k]); } document.write("=====================================<BR />"); } alert(bingo); return false; } </script> </body> </html>
这段代码的目的是,如果list2中有list1的条目,则显示到alert中
我其中加入了测试显示,如果你输入以下的结果,会发现ybun=和ybun=是不相等的(我在IE8中测试是这样的结果,firefox6中正确)
List1:(此行不要输入)
rfrffr=
fdfdsgf
gfsgfgtybty
bgtbt=
jmumkiumki=
bgev
cvfwvfrebb
ybun=
rvybjuy
iuk8i
List2:(此行不要输入)
njun
nhbbgvfe
bgtbt=
bjioko
mkikmi
rfrffr=
mkim
mkimki
kmikmi
jmumkiumki=
ybun=
====================
测试结果中会发现:
ybun== || ybun== || string string true || i: 7 k: 10 || arr_value02.length:11
很不解,为什么字符串 ybun== 和 ybun== 竟然不相等?