javascript - 为什么这段代码输出结果是十个10呢?

查看:88
本文介绍了javascript - 为什么这段代码输出结果是十个10呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

for(i=0;i<10;i++){
    setTimeout("console.log(i)",0);
}

为什么输出结果是十个10呢?还有,前面先输出的304是什么?每次输出那个值都不一样。

解决方案

为什么输出结果是十个10呢?

setTimeout是异步的,在这里,当for循环结束之后才开始执行队列中的代码,那for结束之后 i是多少呢? 10.
解决方法是闭包,这篇文章有详细解读你的例子

前面先输出的304是什么?

timeoutID: 标示当前的计时器,可以用于清除该定时器
window.clearTimeout(timeoutID)

这篇关于javascript - 为什么这段代码输出结果是十个10呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆