浅识js——异步代码与时间对象

71 阅读3分钟

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())