setTimeout()属于单次循环;setInterval()属于每隔一定时间重复循环;
var num = 0; setInterval(function(){ console.log(num++); },1000);//每隔1000会出现0 1 2 3 4 5 .....;var num = 0; setTimeout(function () { console.log(num++); }, 1000);//得到的结果是0;因为它只执行一次; 引申:for(var i = 0;i<10;i++){ setInterval(function(){ console.log(i); },1000) }// 10 10 10....一直重复10;setInterval是异步for循环后setInterval才执行;所以里边的i是10;
setInterval(function(){ for(var i = 0;i<10;i++){ console.log(i); } },1000) //0-9 0-9 ......一直循环0-9这几个数;因为setInterval是异步,所以for循环一遍才执行一次setInterval的定时循环;