【学习笔记33】JavaScript延时器定时器和异步程序
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用于关闭setTimeout
;clearInterval用于关闭setInterval
3、简单了解异步代码
- JS的运行是
单线程
的(执行代码从第一行开始,往下执行, 上一行不结束, 不会运行下一行代码)- 但是万一上一行代码比较耗时(5S), 那么我下一行代码就
需要等待5S
- 但是JS也分为
异步任务(两个定时器)与同步任务
- 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延时器定时器和异步程序相关推荐
- JVM学习笔记-03-类加载器及双亲委派机制
JVM学习笔记-03-类加载器及双亲委派机制 文章目录 JVM学习笔记-03-类加载器及双亲委派机制 1. 类加载器 视频链接-最新JVM教程IDEA版[Java面试速补篇]-03-类加载器及双亲委派 ...
- QT学习笔记(七):定时器事件的3种常用使用方式
QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类. 其 ...
- Python 学习笔记9(装饰器,decorator)
Python 学习笔记9(装饰器,decorator) 31 装饰器 装饰器可以对一个函数.方法或者类进行加工,是一种高级的python语法. 装饰函数 接收一个可调用对象作为输入参数,并返回一个新的 ...
- STM32CubeMX学习笔记(24)——通用定时器接口使用(电容按键检测)
一.电容按键简介 电容器(简称为电容)就是可以容纳电荷的器件,两个金属块中间隔一层绝缘体就可以构成一个最简单的电容.如图 32-1(俯视图),有两个金属片,之间有一个绝缘介质,这样就构成了一个电容.这 ...
- OpenGL蓝宝书第九章学习笔记:片段着色器和帧缓存
前言 本篇在讲什么 OpenGL蓝宝书第九章学习笔记之片段着色器和帧缓存 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C++语法有简单认知 对OpenGL有简单认知 最好是有OpenGL ...
- STM32学习笔记(10)——高级定时器TIM
前排提示:本笔记参考了野火PPT的大部分内容.本人初学定时器,倍感冗杂,有错烦请指出,谢谢! STM32学习笔记(10)--高级定时器TIM 一.时钟源 1. 内部时钟源 2. 外部时钟模式 1 (1 ...
- GEE(Google Earth Engine) 最基础代码学习笔记二 —— JavaScript 语言
GEE(Google Earth Engine) 学习笔记二 Javascript 语言 1. 注释 print('Hello World!'); 如果要注释,则在代码前面加//,比如: // pri ...
- Vue学习笔记:axios 拦截器的用法
Vue学习笔记:axios 拦截器的用法 什么是axios 拦截器? 拦截器就是拦截每一次的请求和响应,然后进行相应的处理.请求拦截器,它可以统一在你发送请求前在请求体里加上token:响应拦截器,是 ...
- Linux学习笔记(3)- 网络编程以及范例程序
Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...
最新文章
- POJ 3034 Whac-a-Mole(DP)
- HTML5学习笔记(三):HTML5的智能提示在VisualStudio2010
- symfony api 错误响应_Postman for Mac(API管理开发软件)
- 深度学习(五十八)caffe移植至mxnet
- Hadoop基础学习
- kafka 集群_kafka 集群及原理
- 官网python安装教程_Python安装教程
- Google 也要“勒紧腰带”过日子了!
- 20muduo_base库源码分析(十一)
- 满纸辛酸泪 —— 红楼梦中话
- 法国政府正考虑采用开源软件
- 计算机图形学算法详解,计算机图形学裁剪算法详解
- C# - ZIP 压缩流
- LINUX编译OPENJDK:The tested endian intarget (big) differs from the endian expected to be found in the
- “飞客蠕虫”形成全球最大僵尸网络 每日感染数万网民
- 个人博客网站搭建详细视频教程和源码
- 马哥python_马哥Python 开发9期
- 华为云计算认证考试大纲是什么?华为云计算认证含金量高吗?
- DNS服务器详解(端口占用与记录类型)
- 夜游灯光表演如何更好的丰富游客体验