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都是单线程的:相当于脑子只有一根筋,想一件事情的时候,想不了第二件事情
  • 相关阅读:
    Qt编写控件属性设计器12-用户属性
    C#中通过三边长判断三角形类型(三角形测试用例)
    C#中通过Selenium定位<a>标签的问题
    SharePoint自动化系列——Manage "Site Subscriptions" using PowerShell
    SharePoint API测试系列——Records.BypassLocks测试
    SharePoint API测试系列——对Recorded Item做OM操作(委托的妙用)
    放松时刻——C#分割字符串
    链表——PowerShell版
    栈——PowerShell版
    队列——PowerShell版
  • 原文地址:https://www.cnblogs.com/cataway/p/4996196.html
Copyright © 2011-2022 走看看