1、计时器 (setInterval)

  • 语法: setInterval(function(){每次执行定时器时要做的事}, 时间)时间的单位是毫秒
  • 返回值: (时间ID)
    • 值取决于你当前的定时器是这个页面的第几个定时器, 返回值可以用于关闭定时器
  • 关闭定时器: clearInterval(时间ID)
        var count = 0;var timer = setInterval(function () {count++;console.log(count);if (count == 5) {clearInterval(timer);}}, 1000)

2、 倒计时器 (setTimeout)

  • 语法:setTimeout(function () {倒计时时间满足时, 要执行的一段代码}, 时间)*时间的单位是毫秒
  • 返回值:(时间ID)
    • 值取决于你当前的定时器是这个页面的第几个定时器, 返回值可以用于关闭定时器
  • 关闭倒计时器: clearTimeout(时间ID)
        var timer1 = setTimeout(function(){​console.log('我是倒计时器');}, 3000)
​clearTimeout(timer1);
  • 关闭定时器: clearInterval 和 clearTimeout
  • 正常来说两个方法可以混用, 不会出错
  • 但是根据语义来说clearTimeout用于关闭setTimeoutclearInterval用于关闭setInterval

3、简单了解异步代码

  1. JS的运行是单线程的(执行代码从第一行开始,往下执行, 上一行不结束, 不会运行下一行代码)
  2. 但是万一上一行代码比较耗时(5S), 那么我下一行代码就需要等待5S
  3. 但是JS也分为异步任务(两个定时器)与同步任务
  4. JS在运行的时候, 会按照从上到下的顺序执行代码, 但是会先把所有的同步任务先执行, 等所有的同步任务执行完毕, 在执行异步任务
        console.log(1);               // 同步任务 1console.log(2);               // 同步任务 2setTimeout(function () {      // 异步任务 1console.log(3);}, 5000)console.log(4);               // 同步任务 3

        console.log(1);console.log(2);
​setInterval(function () {​console.log(3);}, 1000)
​console.log(4);

4、面试题

        console.log('start');                setTimeout(function () {
​console.log('timeout_start')    setTimeout(function () {
​console.log('QF666');                   }, 0)
​console.log('timeout_end');         }, 0)console.log('end');

【学习笔记33】JavaScript延时器定时器和异步程序相关推荐

  1. JVM学习笔记-03-类加载器及双亲委派机制

    JVM学习笔记-03-类加载器及双亲委派机制 文章目录 JVM学习笔记-03-类加载器及双亲委派机制 1. 类加载器 视频链接-最新JVM教程IDEA版[Java面试速补篇]-03-类加载器及双亲委派 ...

  2. QT学习笔记(七):定时器事件的3种常用使用方式

    QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类. 其 ...

  3. Python 学习笔记9(装饰器,decorator)

    Python 学习笔记9(装饰器,decorator) 31 装饰器 装饰器可以对一个函数.方法或者类进行加工,是一种高级的python语法. 装饰函数 接收一个可调用对象作为输入参数,并返回一个新的 ...

  4. STM32CubeMX学习笔记(24)——通用定时器接口使用(电容按键检测)

    一.电容按键简介 电容器(简称为电容)就是可以容纳电荷的器件,两个金属块中间隔一层绝缘体就可以构成一个最简单的电容.如图 32-1(俯视图),有两个金属片,之间有一个绝缘介质,这样就构成了一个电容.这 ...

  5. OpenGL蓝宝书第九章学习笔记:片段着色器和帧缓存

    前言 本篇在讲什么 OpenGL蓝宝书第九章学习笔记之片段着色器和帧缓存 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C++语法有简单认知 对OpenGL有简单认知 最好是有OpenGL ...

  6. STM32学习笔记(10)——高级定时器TIM

    前排提示:本笔记参考了野火PPT的大部分内容.本人初学定时器,倍感冗杂,有错烦请指出,谢谢! STM32学习笔记(10)--高级定时器TIM 一.时钟源 1. 内部时钟源 2. 外部时钟模式 1 (1 ...

  7. GEE(Google Earth Engine) 最基础代码学习笔记二 —— JavaScript 语言

    GEE(Google Earth Engine) 学习笔记二 Javascript 语言 1. 注释 print('Hello World!'); 如果要注释,则在代码前面加//,比如: // pri ...

  8. Vue学习笔记:axios 拦截器的用法

    Vue学习笔记:axios 拦截器的用法 什么是axios 拦截器? 拦截器就是拦截每一次的请求和响应,然后进行相应的处理.请求拦截器,它可以统一在你发送请求前在请求体里加上token:响应拦截器,是 ...

  9. Linux学习笔记(3)- 网络编程以及范例程序

    Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...

最新文章

  1. POJ 3034 Whac-a-Mole(DP)
  2. HTML5学习笔记(三):HTML5的智能提示在VisualStudio2010
  3. symfony api 错误响应_Postman for Mac(API管理开发软件)
  4. 深度学习(五十八)caffe移植至mxnet
  5. Hadoop基础学习
  6. kafka 集群_kafka 集群及原理
  7. 官网python安装教程_Python安装教程
  8. Google 也要“勒紧腰带”过日子了!
  9. 20muduo_base库源码分析(十一)
  10. 满纸辛酸泪 —— 红楼梦中话
  11. 法国政府正考虑采用开源软件
  12. 计算机图形学算法详解,计算机图形学裁剪算法详解
  13. C# - ZIP 压缩流
  14. LINUX编译OPENJDK:The tested endian intarget (big) differs from the endian expected to be found in the
  15. “飞客蠕虫”形成全球最大僵尸网络 每日感染数万网民
  16. 个人博客网站搭建详细视频教程和源码
  17. 马哥python_马哥Python 开发9期
  18. 华为云计算认证考试大纲是什么?华为云计算认证含金量高吗?
  19. DNS服务器详解(端口占用与记录类型)
  20. 夜游灯光表演如何更好的丰富游客体验

热门文章

  1. emc存储java打开后报错,EMC存储划分lun过程
  2. NIDS and HIDS
  3. Linux(阿里云)Tomcat安装教程
  4. 车辆管理系统c语言课程设计报告,图书馆管理系统C语言课程设计报告
  5. MSU2020放榜了
  6. 浏览器怎么解析css和html,浏览器解析html css js
  7. 微信逆向 hook 2.8.0.121 源码分享
  8. 云盘挂载Alist + RaiDrive
  9. 在Windows/Linux下调用API函数实现重启系统
  10. Linux任务计划详解(crontab、at)