时间对象
在 JS 中 Date 给我们提供了操作时间的一些方法, 是 JS 内置的一个对象
var timer = new Date()
console.log(timer)
创建时间对象
创建时间对象的时候, 可以选择传递参数, 也可以不传递参数
1. 不传参
例: var timer = new Date()
console.log(timer)
2. 传参 传递参数分为两种:
(1). 数字
最少要传递两个值, 年 和 月(在 JS 中0~11代表了1~12月)
例: var timer1 = new Date(1999, 00 , 31, 23, 59, 59)
年 月 日 时 分 秒
console.log(timer1)
(2). 字符串
最少只需要传递一个参数年份即可 (字符串的形式传递时月份从 1 开始)
例: var timer2 = new Date('2020-02-13 13:14:15')
console.log(timer2)
获取时间对象
1. 获取 年
语法: timer.getFullYear()
2. 获取 月
语法: timer.getMonth()
3. 获取 日
语法: timer.getDate()
4. 获取 周几
语法: timer.getDay()
5. 获取 时分秒
语法: timer.getHours()
timer.getMinutes()
timer.getSeconds()
6. 获取 一周中的第几天(周日为0, 周六为6)
语法: timer.getDay()
7. getTime 按照 格林威治时间计算 从 1970年1月1日0时0分0秒 到现在(或者指定日期) 的 毫秒数
语法: timer.getTime()
设置时间对象
修改时间对象用 set
1. 设置 年
语法: timer.setFullYear()
2. 设置 月
语法: timer.setMonth()
3. 设置 日
语法: timer.setDate()
5. 设置 时
语法: timer.setHours()
6. 设置 分
语法: timer.setMinutes()
7. 设置 秒
语法: timer.setSeconds()
8. 设置 毫秒
语法: timer.setMilliseconds()
9. 直接设置 到1970年的总毫秒
语法: timer.setTime()
定时器!!!
定时器分为两种 毫秒:秒 1000:1
1.setInterval 计时器, 每间隔固定时间执行一次
语法: setInterval(函数, 数字/时间)
函数: 每间隔固定时间要执行的代码
数字: 间隔的时间, 注意单位是毫秒, 最小值为4~20
例: const timeId1 = setInterval(function(){
console.log('我是一个计时器')
}, 2000)
clearInterval(timeId1)
2.setTimeout 倒计时器,在指定时间到达后, 执行一次(只执行一次)
语法:setTimeout(函数, 数字)
函数:在指定时间到达后要执行的代码
数字:间隔时间, 单位也是毫秒
例: const timeId2 = setTimeout(function(){
console.log('我是一个倒计时器')
}, 5000)
两个定时器的返回值和意义
返回值:
返回值不区分定时器种类, 用于表示你这个定时器是页面中第几个定时器
作用:
用来关闭定时器
关闭定时器
不区分定时器种类, 只要给出正确的定时器返回值就可以关闭
语法: clearTimeout(定时器返回值)
注: 能够关闭计时器也能关闭倒计时器
开发人员的约定:这个定时器只用来关闭计时器!!!
目的是为了让其他开发人员看到这行代码之后,知道你关闭了一个计时器
异步代码
简单的代码异步执行机制
1.非异步代码
按照从上到下的顺序,从左到右的顺序, 依次执行每一行代码
如果上一行代码没有执行完毕, 不会执行下一行代码
2.异步代码
当代码遇到异步任务的时候, 会把这个代码放在 '异步队列' 内等待,所有的同步代码全部执行完毕之后, 在开始执行 '异步队列' 内的代码。
简单来说:代码在执行的时候 如果遇到异步任务, 会先放在 '异步队列' 内等待,然后继续往下执行,直到把所有的同步代码执行完毕后, 再开始执行异步任务
3.异步任务
两种定时器就是异步任务
也可以理解为先执行定时器外面的代码, 然后执行定时器里面的代码