> 文档中心 > JavaScript基础之Math、Data对象

JavaScript基础之Math、Data对象

文章目录

  • 1.Math对象
        • 1.1Math绝对值和三个取整方法
        • 1.2Math.random()
  • 2.Data()日期对象
        • 2.1Date()方法的使用
            • 2.1.1获取当前时间必须实例化
            • 2.1.2`Date()`构造函数的参数
        • 2.2日期格式化
        • 2.3获取日期的总的毫秒形式

1.Math对象

Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员

Math对象的常用属性、方法有:

  <script>    Math.PI  //圆周率    Math.random()   //返回一个[0,1)之间的随机数    Math.floor()    //向下取整    Math.ceil()     //向上取整    Math.round()    //四舍五入取整 Math.abs()      //取绝对值 </script>

举例:

  <script>    var pi = Math.PI  //PI    var a = Math.floor(Math.random() * 10) //返回一个[0,10)之间的整数    var b = Math.abs(-5.5)    console.log(pi, a, b);    //3.141592653589793   4    5.5  </script>

1.1Math绝对值和三个取整方法

  • Math.abs() 取绝对值
  • Math.floor() : 向下取整
  • Math.ceil() : 向上取整
  • Matg.round() : 四舍五入
  <script>    //Math.abs()    console.log(Math.abs(2.3));    //2.3    console.log(Math.abs(-3.1));   //3.1    //Math.floor()    console.log(Math.floor(3.2));  //3    console.log(Math.floor(-3.1)); //-4    //注意负数向下取整数字变大    //Math.ceil()    console.log(Math.ceil(3.6));   //4    console.log(Math.ceil(-4.1));  //-4    //Math.round()    console.log(Math.round(3.2));  //3    console.log(Math.round(-2.4)); //-2  </script>

1.2Math.random()

  • Math.random() 方法可以随机返回一个小数,其取值范围是 [0,1)

  • 得到一个两数之间的随机整数,包括第一个数,不包括第二个数

  • 猜数字小游戏~~

  <script>    var n = Math.floor(Math.random() * 10) + 1    while (true) {      var num = prompt('请输入一个1~10之间的整数')      if (num < 1 || num > 10) { alert('你猜的数超出范围!')      } else if (num < n) { alert('你猜小了!')      } else if (num > n) { alert('你猜大了!')      } else { alert('恭喜,你猜对了!') break;      }    }  </script>

2.Data()日期对象

  • Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用
  • Date 实例用来处理日期和时间

2.1Date()方法的使用

2.1.1获取当前时间必须实例化
  <script>    var timeNow = new Date()    console.log(timeNow);  </script>
2.1.2Date()构造函数的参数
  • 如果Date()不写参数,就返回当前时间
  • 如果Date()里面写参数,就返回括号里面输入的时间
  <script>    //没有参数    var timeNow = new Date()    console.log(timeNow);    //有参数    var time = new Date(2022, 5, 1)    console.log(time);    //Wed Jun 01 2022 00:00:00 GMT+0800 (中国标准时间)    //注意输出的月份比输入的月份往后推一个月,12月输出1月    //这里虽然传入了5月1日,但输出6月1日  </script>

2.2日期格式化

我们想要 2022-6-6 08:08:08 格式的日期,要怎么办?
这需要获取日期指定的部分,所以我们要手动的得到这种格式

方法名 说明 代码
getFullYear() 获取当年 Obj.getFullYear()
getMonth() 获取当月(0-11) Obj.getMonth()
getDate() 获取当天日期 Obj.getDate()
getDay() 获取星期几(周日0到周六6) Obj.getDay()
getHours() 获取当前小时 Obj.getHours()
getMinutes() 获取当前小时 Obj.getMinutes()
getSeconds() 获取当前秒钟 Obj.gerSeconds()
  <script>    var date = new Date();    console.log(date.getFullYear()); // 返回当前日期的年 2022    console.log(date.getMonth() + 1);  //返回的月份小一个月 记得月份 +1    console.log(date.getDate); //返回的是几号    console.log(date.getDay());  //周一返回1 周6返回六 周日返回0    //2022年 6月 6日 星期一    var date = new Date();    var year = date.getFullYear();    var month = date.getMonth() + 1;    var dates = date.getDate();    console.log('今天是' + year + '年' + month + '月' + dates + '日');    // 封装一个函数返回当前的时分秒 格式 08:08:08    function getTimer() {      var time = new Date();      var h = time.getHours();      h = h < 10 ? '0' + h : h;      var m = time.getMinutes();      m = m < 10 ? '0' + m : m;      var s = time.getSeconds();      s = s < 10 ? '0' + s : s;      return h + ':' + m + ':' + s;    }    console.log(getTimer());  </script>

2.3获取日期的总的毫秒形式

  • date.valueOf() :得到现在时间距离1970.1.1总的毫秒数
  • date.getTime() :得到现在时间距离1970.1.1总的毫秒数
  <script>    var time = new Date()    //valueOf() 和 getTime()函数获取时间戳    console.log(time.valueOf());    console.log(time.getTime());    //简化写法    var time1 = +new Date()    console.log(time1);    //HTML5中的新方法    console.log(Date.now());    //以上三种得到的都是距离1970.1.1的总毫秒数  </script>