var i=0;
function intv(){
setTimeout(function(){
console.log(i++);
intv();
},1000)
}
4、写一个函数,计算setTimeout平均[备注:新加]最小时间粒度
var i=0;
function sTime(){
var a=Date.now();
var b=setTimeout(function ctime(){
i++;
if(i===1000){
clearTimeout(b);
var endTime=Date.now();
console.log((end-a)/i);
}
setTimeout(ctime,0);
},0);
}
sTime();
5、下面这段代码输出结果是? 为什么?
var a = 1;
setTimeout(function(){
a = 2;
console.log(a);
}, 0);
var a ;
console.log(a);
a = 3;
console.log(a);
//输出顺序为 1 3 2 因为setTimeout函数是延时函数 会放在所有代码最后执行。
6、下面这段代码输出结果是? 为什么?
var flag = true; //flag默认为true
setTimeout(function(){ //延时函数放到最后执行,根据后面的代码 不会执行到这一步
flag = false;
},0)
while(flag){ //没有执行到延时函数因此flag一直为true 不会跳出循环
}
console.log(flag); // 无法跳出循环 因此不会执行到这一步