请大家看看这段代码,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究竟是怎么回事啊!!
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究竟是怎么回事啊!!
...全文
相关推荐
js中!和!!的区别与用法
= '') { // a有内容才执行的代码}```这段代码可以简化为:```javascriptif (!!a) { // a有内容才执行的代码...}```这里的`!!
JS教程之 什么是 ‘!!‘ ,在 JavaScript 有什么用?
先,值得一提的是,双重否定不是 JavaScript 运算符,而是一个序列中的两个否定。让我们试着分解一个简单的例子。 正如MDN上报道的那样,您可以“串联使用几个 NOT 运算符来显式强制将任何值转换为相应的布尔原语”。换句话说,myVariable在我们的示例中,double-NOT 转换为布尔值。结果布尔值的值取决于 的原始值myVariable。后退一步:NOT 运算符 简而言之,NOT (!) 运算符将布尔值从trueto转换为false,反之亦然。但是如果初始值不是布尔值true或false?我
ArcGIS API for Javascript(中文版!!)
**ArcGIS API for Javascript 中文版详解**ArcGIS API for JavaScript 是Esri公司提供的一款强大的地理信息系统开发工具,主要用于构建Web地图应用。
js 实现 用JavaScript导出图像到Excel
js 实现 用JavaScript导出图像到Excel!值得下载看看!资源免费,大家分享!!
js 实现 JavaScript遍历对象中的所有属性
js 实现 JavaScript遍历对象中的所有属性!值得下载看看!资源免费,大家分享!!


