前端学习笔记-JS-内置对象(Math/Date对象)

内置对象

JavaScript中的对象分为3种:内置对象、浏览器对象、自定义对象

内置对象:就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本二必要的功能。

JavaScript 提供多个内置对象:Math/Array/Number/String/Boolean...

对象只是带有属性方法的特殊数据类型。

学习一个内置对象的使用,只要学会其常用的成员的使用(通过查文档学习)

可以通过MDN/W3C来查询

内置对象的方法很多,我们只需要知道内置对象提供的常用方法,使用的时候查询文档。

 

MDN

Mozilla 开发者网络(MDN)提供有关开放网络技术(Open Web)的信息,包括 HTML、CSS 和万维网及 HTML5 应用的 API。

如何学习一个方法?

  1. 方法的功能

  2. 参数的意义和类型

  3. 返回值意义和类型

  4. demo进行测试

 

Math对象

Math对象不是构造函数,所以我们不需要new 来调用,而是直接使用里面的属性和方法即可,它具有数学常数和函数的属性和方法,都是以静态成员的方式提供

跟数学相关的运算来找Math中的成员(求绝对值,取整)

Math

演示:Math.PI、Math.random()、Math.floor()/Math.ceil()、Math.round()、Math.abs() 、Math.max()

Math.PI                     // 圆周率
Math.random()               // 生成随机数
Math.floor()/Math.ceil()     // 向下取整/向上取整
Math.round()                // 取整,四舍五入
Math.abs()                  // 绝对值
Math.max()/Math.min()        // 求最大和最小值
​
Math.sin()/Math.cos()        // 正弦/余弦
Math.power()/Math.sqrt()     // 求指数次幂/求平方根

案例:

<script>
    //生成一个20-50的随机数
    // Math.random()*(max-min)值最小是0,最大是30,那么Math.random()*(max-min)+min的值就是介于20-50(不包括50)之间
    function getRandomArbitrary(min, max) {
        return Math.random() * (max - min) + min;
    }
    console.log(getRandomArbitrary(10,20));
</script>
    console.log(Math.round(1.1)); // 1
    console.log(Math.round(1.5)); // 2
    console.log(Math.round(-1.1)); // -1
    console.log(Math.round(-1.5)); //-1  四舍五入  其他数字都是四舍五入,但是 .5 特殊 它往大了取

 

Date对象

Date

创建 Date 实例用来处理日期和时间。Date 对象基于1970年1月1日(世界标准时间)起的毫秒数。

// 获取当前时间,UTC世界时间,距1970年1月1日(世界标准时间)起的毫秒数
var now = new Date();
console.log(now.valueOf()); // 获取距1970年1月1日(世界标准时间)起的毫秒数
​
Date构造函数的参数
1. 毫秒数 1498099000356        new Date(1498099000356)
2. 日期格式字符串  '2015-5-1'   new Date('2015-5-1')
3. 年、月、日……                new Date(2015, 4, 1)   // 月份从0开始
  • 获取日期的毫秒形式

// 获得Date总的毫秒数(时间戳)  不是当前时间的毫秒数 而是距离1970年1月1号过了多少毫秒数
        // 1. 通过 valueOf()  getTime()
        var date = new Date();
        console.log(date.valueOf()); // 就是 我们现在时间 距离1970.1.1 总的毫秒数
        console.log(date.getTime());
        // 2. 简单的写法 (最常用的写法)
        var date1 = +new Date(); // +new Date()  返回的就是总的毫秒数
        console.log(date1);
        // 3. H5 新增的 获得总的毫秒数 存在兼容性问题
        console.log(Date.now());
  • 日期格式化方法

toString()      // 转换成字符串
valueOf()       // 获取毫秒值
// 下面格式化日期的方法,在不同浏览器可能表现不一致,一般不用
toDateString()
toTimeString()
toLocaleDateString()
toLocaleTimeString()
  • 获取日期指定部分

getTime()     // 返回毫秒数和valueOf()结果一样,valueOf()内部调用的getTime()
getMilliseconds() 
getSeconds()  // 返回0-59
getMinutes()  // 返回0-59
getHours()    // 返回0-23
getDay()      // 返回星期几 0周日   6周6
getDate()     // 返回当前月的第几天
getMonth()    // 返回月份,***从0开始***
getFullYear() //返回4位的年份  如 2016

案例

  • 写一个函数,格式化日期对象,返回yyyy-MM-dd HH:mm:ss的形式

function formatDate(d) {
  //如果date不是日期对象,返回
  if (!date instanceof Date) {
    return;
  }
  var year = d.getFullYear(),
      month = d.getMonth() + 1, 
      date = d.getDate(), 
      hour = d.getHours(), 
      minute = d.getMinutes(), 
      second = d.getSeconds();
  month = month < 10 ? '0' + month : month;
  date = date < 10 ? '0' + date : date;
  hour = hour < 10 ? '0' + hour : hour;
  minute = minute < 10 ? '0' + minute:minute;
  second = second < 10 ? '0' + second:second;
  return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
}
  • 计算时间差,返回相差的天/时/分/秒

<script>
    // 需求:封装一个函数 计算两个时间直接相差的 天/时/分/秒
    function getInterval(start, end) {
        var startTime = +new Date(start); // 返回的是用户输入时间总的毫秒数
        var endTime = +new Date(end);
        var Interval = (endTime - startTime)/1000; // Interval用户输入的两个日期相差的秒数
        var d = parseInt(Interval / 60 / 60 / 24); //  计算天数
        d = d < 10 ? '0' + d : d;
        var h = parseInt(Interval / 60 / 60 % 24); //  计算小时
        h = h < 10 ? '0' + h : h;
        var m = parseInt(Interval  / 60 % 60); //  计算分钟
        m = m < 10 ? '0' + m : m;
        var s = parseInt(Interval  % 60); //  计算秒数
        s = s < 10 ? '0' + s : s;
    return d+'天'+h+'时'+m+'分'+s+'秒';
    }
    console.log(getInterval('2019-8-5','2019-8-6 00:05:40'));
</script>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值