1.定时器
1.setInterval计时器
- 计时器,每间隔固定的时间执行一次
- 语法:
setInterval(函数, 数字/时间)
- 函数:每间隔固定的时间要执行的代码
- 数字:间隔的时间,注意单位是 毫秒 ,最小值是4-20
// 1. 计时器 setInterval
var timeId1 = setInterval(function () {
console.log('我是一个定时器~~~')
}, 1000)
2.setTimeout倒计时器
- 倒计时器,在指定时间到达后执行一次
- 语法:
setTimeout(函数, 数字)
- 函数:在指定时间到达后要执行的代码
- 数字:间隔时间,单位也是毫秒
// 2. 倒计时器 setTimeout
var timeId2 = setTimeout(function () {
console.log('我是一个倒计时器')
}, 3000)
3.两个定时器的返回值与意义
- 返回值不区分定时器种类,用于表示你这
个定时器是页面中第几个定时器
- 作用:用来关闭定时器
console.log('计时器ID: ', timeId1) //计时器ID: 1
console.log('倒计时器ID: ', timeId2) //倒计时器ID: 2
4.关闭定时器
- 不区分定时器种类,只要给出正确的定时器返回值就可以关闭
- 语法:
clearTimeout(定时器返回值)
clearInterval(定时器返回值)
- 注意:能够关闭计时器,也能关闭倒计时器
- 开发人员的约定:这个
clearInterval(定时器返回值)
只用来关计时器,这个clearTimeout(定时器返回值)
只用来关闭倒计时器
- 开发人员的约定:这个
- 注意:能够关闭计时器,也能关闭倒计时器
// clearTimeout(timeId1)
clearTimeout(timeId2) //只用来关闭倒计时器
clearInterval(timeId1) //只用来关计时器
//clearInterval(timeId2)
2.异步代码
- 简单的代码异步执行机制这是一道面试题, 请熟读并背诵全文
- 什么是非异步代码
- 按照从上往下的顺序, 从左到右的顺序, 依次执行每一行代码,
- 如果上一行代码没有执行完毕, 不会执行下一行代码
- 什么是异步代码
- 当代码遇到异步任务的时候, 会把这个代码放在 '异步队列' 内等待
- 所有的同步代码全都执行完毕之后, 再开始执行 "异步队列" 内的代码
- 简单来说: 代码在执行的时候 如果遇到异步任务, 会先放在 '异步队列' 内等着, 然后继续往下执行,直到把所有的同步代码执行完毕后, 在开始执行异步任务
-
- 什么是异步任务
- 两种定时器都是异步任务
- 可以理解: 先执行定时器外面的代码, 然后执行定时器里边的代码
console.log('1')
setTimeout(function () {
console.log('2')
}, 3000)
console.log('3')
setTimeout(function () {
console.log('4')
}, 4000)
console.log('5')
setTimeout(function () {
console.log('6')
}, 2000)
console.log('7')
结果:
3.时间对象
在 JS 中 Date 给我们提供了操作时间的一些方法, 是 JS 内置的一个对象
var timer = new Date() // new Date() 会给我们返回一个时间对象
console.log(timer)
//Thu Jan 05 2023 20:24:35 GMT+0800 (中国标准时间)
1.时间对象的参数
创建时间对象的时候, 可以选择传递参数, 也可以不传递参数
- 如果需要传递参数, 分为两种形式
- 数字
- 最少要传递两个值, 年 和 月(JS中0-11代表了1-12月)
- 字符串
- 最少之需要传递一个参数年份即可 (字符串的形式传递时月份从 1 开始)
//传参
// 1. 数字
// 年 月 天 时 分 秒
var timer = new Date(1999, 00, 31, 23, 59, 59)
console.log(timer)
//Sun Jan 31 1999 23:59:59 GMT+0800 (中国标准时间)
// 2. 字符串
var timer = new Date('2019-02-13 13:14:15')
console.log(timer)
//Wed Feb 13 2019 13:14:15 GMT+0800 (中国标准时间)
// 不传参
var timer = new Date()
console.log(timer)
// Wed Jan 04 2023 14:12:28 GMT+0800 (中国标准时间)
2.获取时间对象
var timer = new Date()
//获取 年
console.log(timer.getFullYear()) //2023
//获取 月(0-11)
console.log(timer.getMonth()) //0
// 获取 日
console.log(timer.getDate()) //5
// 获取 周几
console.log(timer.getday()) //4
// 获取时分秒
connsole.log(timer.getHours())
console.log(timer.getMinutes())
console.log(timer.getSeconds())
3.设置时间对象
注意, 没有设置 本周的第几天
var time = new Date()
//设置 年
timer.setFullYear(2008)
console.log(timer.getFullYear()) //2008
//设置 月(0-11)
timer.setMonth(11)
console.log(timer.getMonth()) //12
// 设置 日
timer.setDate(20)
console.log(timer.getDate()) //20
**// 注意, 没有设置 本周的第几天**
// 设置 时
timer.setHours(21)
connsole.log(timer.getHours())
// 设置 分
timer.setHours(30)
console.log(timer.getMinutes())
// 设置 秒
timer.setHours(50)
console.log(timer.getSeconds())
// 设置 毫秒
timer.setMilliseconds(888)
console.log(timer.getMilliseconds()) //888
// 直接设置 到 1970 的总毫秒
timer.setTime(123456789)
console.log(timer.getTime())