日期:2014-05-16  浏览次数:20282 次

新年好,问一下这个for循环不可以这样写吗

 <script type="text/javascript">


 for(var k=4;k<=0;k--){
   window.alert(k);
 }
 </script>

------解决方案--------------------
可以这样写,甚至在Nicholas 的高性能js上说,for循环的倒序要比顺序的性能高。
这里边有两个问题,
1. 你的判断条件错了。

for (var k = 4; k > 0; k--) {
    console.log(k);
}

2. js的调试早已经迈入了firebug调试输出的时候了,所以请使用console命令来调试。
http://www.cnblogs.com/see7di/archive/2011/11/21/2257442.html
也可以有如下的测试:

console.time('倒序');
var sum = 0;
var sum2 = 0;
for (var k = 40000000; k > 0; k--) {
    sum += k;
}
console.log(sum);
console.timeEnd('倒序');

console.time('顺序1');
for(var i = 0; i < 40000000; i++){
    sum2 += i;
}
console.log(sum2);
console.timeEnd('顺序1');

------解决方案--------------------
k=4的前提下不可能满足k<=0的条件了。。。所以这个程序不会循环。。- -
------解决方案--------------------
这个循环的条件写错了,而且alert()本身就是window对象的方法,所以直接用alert代替window.alert