09day-内置对象

本文详细介绍了JavaScript中的Math对象及其常用方法,如生成随机数、数值运算等,以及Date对象的创建、参数传递和日期处理,包括时间差计算、定时器(setTimeout和setInterval)以及异步执行的概念。
摘要由CSDN通过智能技术生成

内置对象

数学对象

  • Math 是js的一个内置对象,提供了一堆方法 帮我们操作数字
  • 统一语法:Math.xxx();
Math.random()
  • 作用:获取一个 0~1 之间的随机小数
  • 返回值:0~1之间的随机小数
  • 注意:有可能得到0,但是得不到1
Math.round()
  • 返回值:数字四舍五入取整之后的结果
Math.ceil()

进一

  • 返回值:数字向上取整的结果
Math.floor()

去尾

  • 返回值:数字向下取整的结果
Math.pow()
  • 返回值:取幂以后的结果
  • 语法:Math.pow(底数,指数)
Math.abs()
  • 返回值:数字取绝对值以后的结果
Math.sqrt()
  • 返回值:该数字的算术平方根
Math.max(num1,num2,num3…)
  • 作用:返回若干数字里面的最大值
Math.min(num1,num2,num3…)
  • 作用:返回若干数字里面的最小值
Math.PI
  • 得到的就是一个近似圆周率的值
  • 注意:不要带小括号

内置对象

日期对象

new Date() 非常重要
  • new Date()在不传递任何参数时,得到的是当前的时间
    let time = new Date();
    console.log(time);// Tue Jun 20 2023 10:46:55 GMT+0800 (中国标准时间)
                      // 周几 月份 日期 年份 时间     时区
  • new Date传递参数的多种情况

  • 传递数字

    let time = new Date();
    console.log(time);// Tue Jun 20 2023 10:46:55 GMT+0800 (中国标准时间)
                      // 周几 月份 日期 年份 时间     时区

    // 传递两个参数
    let time2 = new Date(2008,9);
    console.log(time2);// Sat Nov 01 2008 00:00:00 GMT+0800 (中国标准时间)
    // 月份范围:0~11 0表示一月 11表示12月

    // 传递三个参数
    // 前两个参数意义不变,第三个表示该月的第几天 1~31

    let time3 = new Date(2008,10,1);
    console.log(time3); // Sat Nov 01 2008 00:00:00 GMT+0800 (中国标准时间)
    // 获取08年的11月1号

    // 传递四个
    // 前面三个参数意义不变,第四个表示小时数 0~23
    let time4 = new Date(2008,10,1,22);
    console.log(time4); // Sat Nov 01 2008 22:00:00 GMT+0800 (中国标准时间)

    // 传递五个、六个
    // 前面四个不变,第五个表示分钟,第六个表示秒钟
    // 分钟:0~59
    // 秒钟:0~59
    let time5 = new Date(2008,11,1,22,1800,59);
    console.log(time5); // Mon Dec 01 2008 22:59:59 GMT+0800 (中国标准时间)
  • 传递字符串
    console.log(new Date("2019"));
    console.log(new Date("2019-02"));// 月份取值范围:1~12
    console.log(new Date("2019-02-03"));
    console.log(new Date("2019-02-03 13:"));
    console.log(new Date("2019-02-03 13:13"));
    console.log(new Date("2019-02-03 13:13:13"));
日期格式化
    let time = new Date(2019,9,1,12,13,15);
    console.log(time); // Tue Oct 01 2019 12:13:15 GMT+0800 (中国标准时间)
    // 获取年份 getFullYear()
    let year = time.getFullYear();
    console.log(year);
    // 获取月份 getMonth()
    // 0~11的取值 0表示1月 11表示12月
    let month = time.getMonth()  + 1;
    console.log(month);
    // 获取哪一天 getDate
    let day = time.getDate();
    console.log(day);
    // 获取小时 getHours()
    let hours = time.getHours();
    console.log(hours);
    // 获取分钟 getMinutes()
    let minutes = time.getMinutes();
    // 获取秒钟
    let seconds = time.getSeconds();
    // 获取周几 getDay
    let week = time.getDay();
    // 获取执行时间到“格林威治时间”的毫秒数
    // getTime
    let militime = time.getTime();
    console.log(militime);
  • 在编程世界中,有个特殊的时间1970年1月1日00:00:00
  • 在这个世界被叫做“格林威治时间”
  • 在所有编程语言中,这个时间固定不变,且他对应的数字是0
  • 从格林威治时间开始,没过一毫秒,数字就会+1;
    /* 
      获取到现在的时间
      1. 从时间对象中拿到年月日时分秒
      Tue Oct 01 2019 12:13:15 GMT+0800 (中国标准时间)
      2023-06-20 11:31:xx 上午/下午
      2. 调整信息
        - 月份 + 1
        - 判断上/下午
        - 调整为12小时制
        - 调整星期信息
      3. 组成字符串打印
    */
   let time = new Date();
  //  2023年 6月20号 上午 11:49:xx

  let year = time.getFullYear();
  let month = time.getMonth();
  let date = time.getDate();
  let hour = time.getHours();
  let minutes = time.getMinutes();
  let seconds = time.getSeconds();
  let day = time.getDay();
  // 调整信息
  month += 1;

  // 判断上午或下午
  let str = hour < 12 ? "上午" : "下午";

  // 调整为12小时制
  hour = hour > 12 ? hour -= 12 : hour;

  // 调整星期
  let s = "日一二三四五六";
  let week = `星期${s[day]}`;

  // 3.  组装
  let res = `${year}${month}${date}${str}---${hour}${minutes}${seconds}${week}`;

  console.log(res);
获取时间差

 /* 
    获取时间差
      计算当前时间距离到2023年双十一 00:00:00还有多少天(精确到秒)
  */

  let time1 = new Date();
  let time2 = new Date("2023-11-11 00:00:00");

  let dTime = time2 - time1;

  let day = dTime / (1000 * 60 * 60 * 24);
  
  // 向下取整
  day = Math.floor(day);
  console.log(day);

  let dHour = dTime - day * (1000*60*60*24);
  let hour = dHour / (1000 * 60 * 60);
  hour = Math.floor(hour);
  console.log(hour);

  let dMin = dHour - hour * (1000 * 60 * 60);
  let minutes = dMin / (1000 * 60);
  minutes = Math.floor(minutes);
  console.log(minutes);

  let dSec = dMin - 1000 * 60 * minutes
  let seconds = Math.floor(dSec / 1000);
  console.log(seconds);

  let res = `距离双十一还有${day}${hour}${minutes}${seconds}`;
  console.log(res);

定时器

setTimeout(fn,时间)
  • 定时一段时间后执行
  • 时间是毫秒数,写0/不写 都会”立即执行“
  • 定时器还可以拥有更多的参数,时间到了后多余的参数按顺序依次传递给fn

  // setTimeout(function(){
  //   console.log("时间到了");
  // },1000)

  // setTimeout(function(a,b,c){
  //   console.log(a,b,c);
  // },1000,"吃饭","睡觉","打游戏")

  // function add(a,b){
  //   console.log(a+b);
  // }
  // setTimeout(add,1000,10,20); // 30

  // setTimeout(add(10,20),1000)

  // 清除定时器
    let time = setTimeout(function(){
      console.log("我执行了");
    },1000)
    // clearTimeout(你要清楚的定时器);
    // clearTimeout()
    clearTimeout(time)
    // time可以用来清除定时器,它是一个数字,表示当前页面的第几个定时器。

    setTimeout(function(){
      console.log(10);
    },1000)
setInterval(fn,时间)
  • 反复调用的定时器
  • 语法和setTimeout 类似

唯一要注意的是清除定时器的方法不一样,可以混着用,但是不建议。


      let i = 0;
    let res = setInterval(function(a,b){
        console.log(i++);
        console.log(a,b);

        if(i == 5){
          clearInterval(res)
        }
    },1000,10,20)

    // 清除反复调用的定时器
    // clearInterval(你要清除的定时器)
    // setTimeout(function(){
    //   clearInterval(res)
    // },5000)
初始异步

我们的两种定时器都属于异步语句,不会阻塞cpu继续执行其他的语句,当异步完成以后,去执行回调函数

// 异步的1
    setTimeout(function(){
      console.log(1);
    })

// 同步的2 3
    console.log(2);
    console.log(3);

  // 打印顺序 2 3 1
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值