BOM——定时器


window.setInterval([function],[interval]);
setInterval:设置一个定时器,当到达指定时间[interval]的时候,执行[function],并且以后每隔这么长的时间都重新执行一次[function]

window.setTimeout([function],[interval]);
setTimeout:设置一个定时器,当到达指定时间[interval]的时候,执行[function],定时器结束,以后不在执行了

window.setInterval(function () {
console.log("hello word~~");
}, 1000);

window.setTimeout(function () {
console.log("hello word~~");
}, 1000);


var num = 12;
window.setTimeout(function () {
num += 100;
console.log(num);//-->(2) 112
}, 1000);
设置一个定时器,设置一个等待的时间1000ms,当到达1000ms之后,开始执行我们对应的函数
定时器是异步编程:在等待定时器执行函数的那1000ms内,代码继续向下执行,只有把下面的代码都执行完成后,浏览器空闲下来了,才会返回头看定时器的时间是否到了,到了执行对应的函数
console.log(num);//-->(1) 12

同步编程:上面的事情没有完成,则继续做上面的事情,只有上面的事情完成了,下面的事情才可以开始进行
异步编程:不管上面的事情是否做完,下面的事情都开始执行了

A同学下课回家,有两个习惯 煮一杯咖啡,看书
同步:回家先煮一杯咖啡(30分钟才能煮好),在30分钟内,她搬了个小板凳做旁边一直盯着,什么事情都不做,只有煮好了,才开始看书
异步:回家先煮一杯咖啡(30分钟才能煮好),不在等着,先去看书去,看入神了,当看完书了,才想起来我还煮着咖啡,才去管咖啡去


var num = 12;
window.setTimeout(function () {
num = 100;
console.log(num);
}, 1000);
//下面的代码永远的执行不完,不管定时器是否到达指定时间,都需要等下麦代码完成后才会执行,所以定时器的function永远不会被触发
while (1) {//1代表的是true,条件恒成立,这是一个死循环
console.log(num);
}


var num = 12;
window.setTimeout(function () {
num = 100;
console.log(num);
}, 0);
//定时器的时间因子设置为0,也不是立即执行,每一个浏览器有一个默认的最小等待时间,谷歌:5-6ms IE:10-13ms,即使你写的是0,在谷歌下默认也要等到5-6ms左右,在这个等待时间内,继续执行下面的代码
console.log(num);


js都是单线程的:相当于脑子只有一根筋,想一件事情的时候,想不了第二件事情
优质内容筛选与推荐>>
1、JAVA数据类型简单认识
2、剑指offer面试题16:反转链表
3、浅谈Web服务器和应用服务器的区别
4、二.sublime配置 sublimecondeintel 分号后不要提示
5、jmeter BeanShell断言(四)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号