请大家看看这段代码,javascript的for究竟是怎么回事啊!!

mis98ZB mis98ZB 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下两个页面,功能一样,但是一个用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究竟是怎么回事啊!!
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
mis98ZB
ASP 28,401 成员 356,940 内容