请大家看看这段代码,javascript的for究竟是怎么回事啊!!
以下两个页面,功能一样,但是一个用for,一个用while。结果就完全不一样了:
TestA.html:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<script language="JavaScript">
function TestBreak(txtTest)
{
for(cntI = 0; cntI < txtTest.length; cntI++)
if(txtTest.charAt(cntI) == "8") break;
return(cntI == txtTest.length);
}
function TestBreak2(txtTest2)
{
for(cntI = 0; cntI < txtTest2.length; cntI++)
if(txtTest2.charAt(cntI) == "9" || !TestBreak(txtTest2.charAt(cntI))) break;
window.alert("cntI = " + cntI);
}
</script>
</HEAD>
<BODY>
<center>
<form>
<INPUT name=CheckNum size="27" type="button" value="CheckNum" onclick="TestBreak2(txtNum.value);">
<INPUT name=txtNum size=12>
</form>
</center>
</BODY>
</HTML>
TestB.html:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<script language="JavaScript">
function TestBreak(txtTest)
{
for(cntI = 0; cntI < txtTest.length; cntI++)
if(txtTest.charAt(cntI) == "8") break;
return(cntI == txtTest.length);
}
function TestBreak2(txtTest2)
{
var cntI = 0;
while(cntI < txtTest2.length){
if(txtTest2.charAt(cntI) == "9" || !TestBreak(txtTest2.charAt(cntI))) break;
cntI++
}
window.alert("cntI = " + cntI);
}
</script>
</HEAD>
<BODY>
<center>
<form>
<INPUT name=CheckNum size="27" type="button" value="CheckNum" onclick="TestBreak2(txtNum.value);">
<INPUT name=txtNum size=12>
</form>
</center>
</BODY>
</HTML>
在页面的文本框中输入“123456789”,TestA.html会陷入死循环,而TestB.html则能正常执行。
javascript的for究竟是怎么回事啊!!