问fn1()、fn2() 分别输出什么,代码如下:
function fn1() {
for (var i = 0; i < 4; i++) {
var tc = setTimeout(function (i) {
console.log(i);
clearTimeout(tc)
}, 10, i);
}
}
function fn2() {
for (var i = 0; i < 4; i++) {
var tc = setInterval(function (i, tc) {
console.log(i);
clearInterval(tc)
}, 10, i, tc);
}
}
fn1()
fn2()
首先看fn1(),因为JavaScript的运行机制问题,定时器会被当异步处理,会先走完主流层,在执行定时器里的内容。
最终运行结果如下: