zoukankan      html  css  js  c++  java
  • 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都是单线程的:相当于脑子只有一根筋,想一件事情的时候,想不了第二件事情
  • 相关阅读:
    pandas读写csv最简代码
    csv.read和csv.write
    交叉验证
    纪念被win10大更新搞崩的vbox
    c++中关于保留小数的小总结
    Java里的值传递与“引用传递”——一些想法
    Eclipse使用遇到的一些问题及解决方案(持续更新)
    Pray for 京阿尼——愿逝者安息,伤者早日康复
    洛谷p1208—混合牛奶【典型贪心】(关联排序小技巧)
    洛谷p1217—回文质数(默默宣传打表法)
  • 原文地址:https://www.cnblogs.com/cataway/p/4996196.html
Copyright © 2011-2022 走看看