js基础知识——异步代码与时间对象
一、异步代码执行机制
- 什么异步代码?
- 当代码遇到异步任务的时候, 会把这个代码放在 '异步队列' 内等待,所有的同步代码全都执行完毕之后, 在开始执行 "异步队列" 内的代码
- 简单来说: 代码在执行的时候 如果遇到
异步任务, 会先放在 '异步队列' 内等着, 然后继续往下执行,直到把所有的同步代码执行完毕后, 再开始执行异步任务- 异步任务:两种定时器(setInterval 和 setTimeout)
- 什么是非异步代码?
- 按照从上往下的顺序, 从左到右的顺序, 依次执行每一行代码
- 如果上一行代码没有执行完毕, 不会执行下一行代码
console.log('1')
setTimeout(function () {
console.log('2')
}, 3000)
console.log('3')
setTimeout(function () {
console.log('4')
}, 3000)
console.log('5')
setTimeout(function () {
console.log('6')
}, 3000)
console.log('7') //执行结果 1 3 5 7 2 4 6
二、时间对象
在 JS 中 Date 给我们提供了操作时间的一些方法, 是 JS 内置的一个对象
1.创建对象
- 注:创建时间对象的时候, 可以选择传递参数, 也可以不传递参数
- 转递参数时,分为两种形式:数字和字符串
//一、创建时间对象——不传参
var timer = new Date()
console.log(timer) //返回的是查询时的具体时间
//二、创建时间对象——传参
//1.数字 [最少要传递两个值, 年 和 月`(JS中0-11代表了1-12月)]
var timer = new Date(2023,00,3,14,29) //月份从0开始
console.log(timer) //2023年1月3日 时间为 14:29:00
//2.字符串 [最少之需要传递一个参数年份即可 (字符串的形式传递时月份从 1 开始)]
var timer = new Date('2023-1-3 14:29:50') //月份从1开始
console.log(timer) //2023年1月3日 时间为 14:29:50
2.格式化时间对象
var timer = new Date() //创建一个事件对象 为2023.1.4 14:26:53
//1.得到时间对象的年份
var year = timer.getFullYear()
console.log(year) //2023
//2.得到时间对象的月份
var month = timer.getMonth()
console.log(month) // 0 (代表1月)
//3.得到时间对象的哪一天
var day = timer.getDate()
console.log(day) // 4
//4.得到时间对象的小时
var hours = timer.getHours()
console.log(hours) // 14
//5.得到时间对象的分钟
var minutes = timer.getMinutes()
console.log(minutes) // 26
//6.得到时间对象的秒数
var seconds = timer.getSeconds()
console.log(seconds) //根据具体变 区间:(0~59)
//7.得到时间对象中 一周的第几天 (0-6表示 周1-周7 周日为0)
var week = timer.getDay()
console.log(week) //
//8. getTime 按照 格林威治时间计算,从1970年1月1日 0:0:0到到现在(指定日期)的毫秒数
var getTime = timer.getTime()
console.log(getTime) // 毫秒数
3.设置时间对象
var timer = new Date ()
//1.设置年
timer.setFullYear(2019)
// 写法一:直接获取
console.log(timer.getFullYear())
//写法二:给赋值一个新变量,进行设置
var time1 = timer.getFullYear()
console.log(time1) */
//2.设置月
var timer = new Date ()
timer.setMonth(11)
console.log('设置的月份',timer.getMonth())
//3.设置日
timer.setDate(20)
console.log(timer.getDate())
//4.设置 时
timer.setHours(15)
console.log(timer.getHours())
//5.设置 分
timer.setMinutes(55)
console.log(timer.getMinutes())
//6.设置 秒
timer.setSeconds(51)
console.log(timer.getSeconds())
//7.设置 毫秒
timer.setMilliseconds(59)
console.log(timer.getMilliseconds())
//8.设置 毫秒 从1970年开始
timer.setTime(66666)
console.log(timer.getTime())