• 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都是单线程的:相当于脑子只有一根筋,想一件事情的时候,想不了第二件事情
  • 相关阅读:
    基于ubuntu10.04的gccarm安装
    面向连接和非面向连接
    多址技术与复用技术
    NAT——网络地址转换
    IP地址与子网掩码的关系
    ISO的7层模型
    比特率与波特率的比较
    C#中GUID的使用
    iframe刷新父页面
    javascript 获取控件坐标
  • 原文地址:https://www.cnblogs.com/cataway/p/4996196.html
Copyright © 2020-2023  润新知